micropython/extmod
Jim Mussared b6a9778484 py/misc: Change sizeof to offsetof for variable-length alloc.
This fixes the case where e.g.

    struct foo_t {
      mp_obj_t x;
      uint16_t y;
      char buf[];
    };

will have `sizeof(struct foo_t)==8`, but `offsetof(struct foo_t, buf)==6`.

When computing the size to allocate for `m_new_obj_var` we need to use
offsetof to avoid over-allocating. This is important especially when it
might cause it to spill over into another GC block.

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-11-03 16:03:18 +11:00
..
asyncio extmod/asyncio: Emit errors to stderr, not stdout. 2023-10-13 14:55:54 +11:00
axtls-include extmod/axtls-include: Add back needed header files for building axTLS. 2023-01-12 16:04:57 +11:00
btstack extmod/btstack/btstack_hci_uart: Trigger a poll after UART data is sent. 2023-09-29 18:01:42 +10:00
lwip-include
mbedtls extmod/mbedtls: Remove brainpool curves from config. 2022-10-22 19:12:46 +11:00
nimble py/misc: Change sizeof to offsetof for variable-length alloc. 2023-11-03 16:03:18 +11:00
extmod.cmake extmod/machine_uart: Factor ports' UART Python bindings to common code. 2023-10-26 10:46:42 +11:00
extmod.mk lib/littlefs: Update LittleFS to v2.8.1. 2023-11-01 17:07:18 +01:00
font_petme128_8x8.h extmod: Move font_petme128_8x8.h from ports/stm32 to extmod. 2022-05-05 13:30:40 +10:00
machine_adc.c extmod/machine_adc: Factor ports' ADC Python bindings to common code. 2023-10-23 17:16:45 +11:00
machine_bitstream.c extmod/modmachine: Consolidate simple machine headers into modmachine.h. 2023-10-26 16:49:27 +11:00
machine_i2c.c extmod/modmachine: Consolidate mem, i2c and spi headers to modmachine.h. 2023-10-26 17:40:22 +11:00
machine_i2s.c extmod/machine_i2s: Factor comments, some enums and macros. 2023-10-20 17:40:17 +11:00
machine_mem.c extmod/modmachine: Consolidate mem, i2c and spi headers to modmachine.h. 2023-10-26 17:40:22 +11:00
machine_pinbase.c extmod/modmachine: Consolidate simple machine headers into modmachine.h. 2023-10-26 16:49:27 +11:00
machine_pulse.c extmod/modmachine: Consolidate simple machine headers into modmachine.h. 2023-10-26 16:49:27 +11:00
machine_pwm.c extmod/machine_pwm: Remove header file and move decls to .c file. 2023-10-20 16:24:46 +11:00
machine_signal.c extmod/modmachine: Consolidate simple machine headers into modmachine.h. 2023-10-26 16:49:27 +11:00
machine_spi.c extmod/modmachine: Consolidate mem, i2c and spi headers to modmachine.h. 2023-10-26 17:40:22 +11:00
machine_timer.c extmod: Add and reorganise compilation guards and includes. 2022-11-11 16:24:32 +11:00
machine_uart.c extmod/machine_uart: Factor ports' UART Python bindings to common code. 2023-10-26 10:46:42 +11:00
machine_wdt.c extmod/machine_wdt: Factor ports' WDT Python bindings to common code. 2023-10-20 15:36:09 +11:00
misc.h all: Rename mp_umodule*, mp_module_umodule* to remove the "u" prefix. 2023-06-08 17:54:04 +10:00
modasyncio.c extmod/asyncio: Rename uasyncio to asyncio. 2023-06-19 17:33:03 +10:00
modbinascii.c extmod/moddeflate: Add deflate module providing the DeflateIO class. 2023-07-21 19:32:40 +10:00
modbluetooth.c all: Fix various spelling mistakes found by codespell 2.2.6. 2023-10-03 11:24:50 +11:00
modbluetooth.h extmod/btstack: Add support for CCCD to allow client subscriptions. 2023-04-26 11:37:20 +10:00
modbtree.c extmod/modbtree: Undefine queue macros before including berkeley-db. 2023-06-23 15:34:22 +10:00
modcryptolib.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
moddeflate.c extmod/moddeflate: Change default window size. 2023-09-01 12:23:37 +10:00
modframebuf.c extmod/modframebuf: Remove FrameBuffer1 from natmod build. 2023-10-16 12:18:43 +11:00
modhashlib.c extmod: Update to support mbedtls 3.x. 2023-06-23 15:22:27 +10:00
modheapq.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
modjson.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
modlwip.c extmod/modlwip: Fix setting of IP option SOF_BROADCAST. 2023-09-12 12:49:14 +10:00
modmachine.h extmod/modmachine: Consolidate mem, i2c and spi headers to modmachine.h. 2023-10-26 17:40:22 +11:00
modnetwork.c extmod/modnetwork: Forward if.config(hostname) to network.hostname. 2023-10-04 12:39:51 +11:00
modnetwork.h extmod/modnetwork: Forward if.config(hostname) to network.hostname. 2023-10-04 12:39:51 +11:00
modonewire.c all: Remove third argument to MP_REGISTER_MODULE. 2022-06-02 16:31:37 +10:00
modos.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
modplatform.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
modplatform.h extmod/modplatform: Set MICROPY_PLATFORM_ARCH on riscv platforms. 2023-06-23 15:34:22 +10:00
modrandom.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
modre.c py/misc: Change sizeof to offsetof for variable-length alloc. 2023-11-03 16:03:18 +11:00
modselect.c extmod/modselect: Properly track number of poll objects that are fd's. 2023-08-14 18:48:47 +10:00
modsocket.c extmod/{modlwip,modsocket}: Add support for SO_BROADCAST socket option. 2023-09-01 18:34:18 +10:00
modssl_axtls.c extmod/modssl_axtls: Only close underlying socket once if it was used. 2023-09-29 12:03:00 +10:00
modssl_mbedtls.c extmod/modssl_mbedtls: Ignore err ERR_SSL_RECEIVED_NEW_SESSION_TICKET. 2023-09-03 21:42:52 +10:00
modtime.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
modtime.h all: Rename *umodule*.h to remove the "u" prefix. 2023-06-08 17:54:14 +10:00
moductypes.c extmod/moductypes: Validate that uctypes.struct addr argument is an int. 2023-10-12 15:47:15 +11:00
modwebrepl.c all: Rename *umodule*.h to remove the "u" prefix. 2023-06-08 17:54:14 +10:00
modwebsocket.c all: Use MP_REGISTER_EXTENSIBLE_MODULE for overrideable built-ins. 2023-06-08 17:54:21 +10:00
modwebsocket.h all: Rename *umodule*.h to remove the "u" prefix. 2023-06-08 17:54:14 +10:00
mpbthci.c
mpbthci.h extmod/nimble: Add support for reading whole HCI UART packets. 2022-06-03 11:53:28 +10:00
network_cyw43.c extmod/modnetwork: Forward if.config(hostname) to network.hostname. 2023-10-04 12:39:51 +11:00
network_cyw43.h
network_esp_hosted.c extmod/network_esp_hosted: Add ESP-Hosted networking interface. 2023-09-14 23:51:30 +10:00
network_lwip.c extmod/modnetwork: Allow more extensive port-specific customisation. 2023-03-01 01:26:44 +11:00
network_ninaw10.c extmod/network_ninaw10: Fix select flags handling in socket poll. 2023-10-27 15:49:17 +11:00
network_wiznet5k.c extmod/modmachine: Consolidate mem, i2c and spi headers to modmachine.h. 2023-10-26 17:40:22 +11:00
os_dupterm.c all: Rename *umodule*.c to remove the "u" prefix. 2023-06-08 17:54:17 +10:00
vfs.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
vfs.h py/builtin: Clean up and simplify import_stat and builtin_open config. 2022-05-25 13:04:45 +10:00
vfs_blockdev.c
vfs_fat.c py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
vfs_fat.h
vfs_fat_diskio.c
vfs_fat_file.c py/stream: Add mp_stream___exit___obj that calls mp_stream_close. 2023-07-21 18:49:03 +10:00
vfs_lfs.c extmod: Add and reorganise compilation guards and includes. 2022-11-11 16:24:32 +11:00
vfs_lfs.h
vfs_lfsx.c extmod/vfs_lfsx: Fix offset used before range check. 2023-05-19 22:01:10 +10:00
vfs_lfsx_file.c py/misc: Change sizeof to offsetof for variable-length alloc. 2023-11-03 16:03:18 +11:00
vfs_posix.c extmod/vfs_posix: Fix getcwd() on non-root VFS. 2023-10-19 16:21:09 +02:00
vfs_posix.h
vfs_posix_file.c extmod/vfs_posix_file: Fix flush handling in msvc builds. 2023-10-05 10:18:24 +11:00
vfs_reader.c py/builtinevex: Handle invalid filenames for execfile. 2023-10-12 15:17:59 +11:00
virtpin.c py/obj: Add accessors for type slots and use everywhere. 2022-09-19 19:06:07 +10:00
virtpin.h