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 /tests/micropython/viper.py | |
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 'tests/micropython/viper.py')
-rw-r--r-- | tests/micropython/viper.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/tests/micropython/viper.py b/tests/micropython/viper.py index 5d4f4fd7b..7e6ed67d4 100644 --- a/tests/micropython/viper.py +++ b/tests/micropython/viper.py @@ -79,3 +79,12 @@ except SystemError as e: #@micropython.viper #def g() -> uint: # return -1 + +# calling GC after defining the function +@micropython.viper +def viper_gc() -> int: + return 1 +print(viper_gc()) +import gc +gc.collect() +print(viper_gc()) |