Skip to content
Snippets Groups Projects
Commit ffec12c8 authored by sof's avatar sof
Browse files

[project @ 1997-01-21 09:02:17 by sof]

Stable pointers were not treated as roots
parent 19a43aba
No related branches found
No related tags found
No related merge requests found
...@@ -159,6 +159,11 @@ RealPerformGC(liveness, reqsize, always_reenter_node, do_full_collection) ...@@ -159,6 +159,11 @@ RealPerformGC(liveness, reqsize, always_reenter_node, do_full_collection)
displacement); */ displacement); */
} }
/* Add the stable pointer table to the roots list */
#ifndef PAR
StorageMgrInfo.roots[num_ptr_roots++] = StorageMgrInfo.StablePointerTable;
#endif
ASSERT(num_ptr_roots <= SM_MAXROOTS); ASSERT(num_ptr_roots <= SM_MAXROOTS);
StorageMgrInfo.rootno = num_ptr_roots; StorageMgrInfo.rootno = num_ptr_roots;
...@@ -213,6 +218,11 @@ RealPerformGC(liveness, reqsize, always_reenter_node, do_full_collection) ...@@ -213,6 +218,11 @@ RealPerformGC(liveness, reqsize, always_reenter_node, do_full_collection)
/* root restoring ------------------------------- */ /* root restoring ------------------------------- */
/* must do all the restoring exactly backwards to the storing! */ /* must do all the restoring exactly backwards to the storing! */
/* remove the stable pointer table first */
#ifndef PAR
StorageMgrInfo.StablePointerTable = StorageMgrInfo.roots[--num_ptr_roots];
#endif
/* now the general regs, in *backwards* order */ /* now the general regs, in *backwards* order */
# define __DEROOT_PTR_REG(cond,n) /* n == 1 <=> R1 */ \ # define __DEROOT_PTR_REG(cond,n) /* n == 1 <=> R1 */ \
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment