Offload int[] to byte[].
[SquirrelJME.git] / assets / developer-notes / stephanie-gawroriski / 2019 / 06 / 18.mkd
blobcc7a17bee739a5500c1fd3e4e2b31fb5fae44024
1 # 2019/06/18
3 ## 16:33
5 Okay, so I definitely have a reference counting issue.
7 ## 16:43
9 Okay so I added a hit to detect negative uncounts and it definitely looks like
10 there is a big in `jvmGarbageCollect()`. This is in the garbage collection of
11 array elements. Very much appears that for larger arrays I am just uncounting
12 the first.
14 ## 16:53
16 Actually I just realized I need a monitor count.
18 ## 16:55
20 Actually no, I can just hide that in the monitor code since it is JVM handled.
21 I think what I can do is make a temporary structure of sorts which stores the
22 information. Just that when something is locked it WILL have thread and count
23 information in it. However problem with this is that it requires two atomic
24 accesses that could differ. It has to have just one.
26 ## 18:13
28 I need like SquirrelGrind to detect memory corruption within the VM or
29 similar. I know I have memory corruption, just not sure where.
31 ## 18:14
33 It does not happen if GC does nothing. And it does not happen if free is
34 ever called. So it has to be in the free area.
36 ## 19:19
38 Okay so the setting the memory block stuff causing free to fail, if free
39 does nothing then it passes. So I think it is corruption after free?
41 ## 19:29
43 Okay so, garbage collection works, but free is messed up.
45 ## 19:30
47 Okay, so hypothetically I can get very tiny blocks during splits so those
48 have to not be possible.
50 ## 19:33
52 Actually there is memory loss, because the chunk wanted size drops and such
53 so this definitely needs a different case!