Hi,
 When i tried to insert code to do scavenging using the go_through_object
macro, i am running into an infinite loop, can you please point out
where i am going wrong,
[ for the time being i am looking at only the minor collection]

To avoid looping endlessly when i removed the lines 17-23 i get a
corrupted object ref which i presume is due to some object not being copied.

1.for each root {
2. if(root!=NULL and root contains pointers) {
3.  go_through_object (method_table (root), root, size(root), xx,
4.                              {
5.                               relocateChild(xx);
6.                              }
7.  );
8. }
9.}
10.relocateChild(obj) {
11. if(generation(*obj)==0) {//consider only young objects
12.  if(*obj is valid) {
13.   if(*obj.relocated address == NULL) {
14.    copy_object_simple(obj)
15.   }
17.   if(*obj && contain_pointers(*obj)) {
18.     go_through_object(method_table(*obj),*obj,size(*obj),xx,
19.     {
20.        relocateChild(xx);
21.     }
22.     );
23.   }
24.  }
25. }
26.} //end relocateChild

Thanks and Regards
archana

Reply via email to