diff options
| author | Damien George <damien.p.george@gmail.com> | 2014-08-24 16:28:17 +0100 |
|---|---|---|
| committer | Damien George <damien.p.george@gmail.com> | 2014-08-24 16:28:17 +0100 |
| commit | 3c658a4e755a75e495303957208486e583ddb270 (patch) | |
| tree | 6418fea9bf3dcf4aed2145db94fda4c0de1d0321 /py/mpconfig.h | |
| parent | 25fc41dd316c38df3e2a6cfe4b53322d76dc92fc (diff) | |
py: Fix bug where GC collected native/viper/asm function data.
Because (for Thumb) a function pointer has the LSB set, pointers to
dynamic functions in RAM (eg native, viper or asm functions) were not
being traced by the GC. This patch is a comprehensive fix for this.
Addresses issue #820.
Diffstat (limited to 'py/mpconfig.h')
| -rw-r--r-- | py/mpconfig.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/py/mpconfig.h b/py/mpconfig.h index 850d05524..73c015a09 100644 --- a/py/mpconfig.h +++ b/py/mpconfig.h @@ -429,6 +429,12 @@ typedef double mp_float_t; #define MP_ENDIANNESS_LITTLE (0) #endif +// Make a pointer to RAM callable (eg set lower bit for Thumb code) +// (This scheme won't work if we want to mix Thumb and normal ARM code.) +#ifndef MICROPY_MAKE_POINTER_CALLABLE +#define MICROPY_MAKE_POINTER_CALLABLE(p) (p) +#endif + // printf format spec to use for mp_int_t and friends #ifndef INT_FMT #ifdef __LP64__ |
