summaryrefslogtreecommitdiff
path: root/tests/micropython/viper.py
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-08-24 16:28:17 +0100
committerDamien George <damien.p.george@gmail.com>2014-08-24 16:28:17 +0100
commit3c658a4e755a75e495303957208486e583ddb270 (patch)
tree6418fea9bf3dcf4aed2145db94fda4c0de1d0321 /tests/micropython/viper.py
parent25fc41dd316c38df3e2a6cfe4b53322d76dc92fc (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.py9
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())