location of static data (was Re: Problem in Thread.c)
"Chris Pickett" <[email protected]> Sun, 16 Apr 2006 19:31:07 -0400 (EDT)
| Newsgroups | gmane.comp.java.vm.sablevm.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Etienne, Oh, I'm confused now. I had thought the wrong thing for a long long time... :( Is it the case that in INVOKESTATIC, the line below deferences an _svmt_object_instance ** to an _svmt_object_instance *, and that the ** i= s not located on the heap but the * is? _svmt_object_instance *instance =3D *(method->class_info->class_instanc= e); When PUTSTATIC_<X> is executed, where does that write? Previously, I thought it wrote to a class field that was outside of the heap. Do the Class instances move on GC? If so does that mean the jvalue * below from PUTSTATIC_<X>, which is stored in the code array, gets updated when GC happens? jvalue *pvalue =3D (pc++)->pvalue; pvalue->$3 =3D stack[--stack_size].$2; Thanks a lot Etienne, sorry if I confused you Sebastien, Chris On Sun, April 16, 2006 6:48 pm, Etienne Gagnon wrote: > Hi Chris, > > > All object instances are in the heap. Invoke static has no instance, > but synchronizes on the Class instance of its class. Only the internal= VM > data structures of the class are in class loader memory. > > Etienne > > > Chris Pickett wrote: > >> This is just a guess, but maybe it is because the object instance for >> an INVOKESTATIC is not on the heap but in class loader memory. >> > > -- > Etienne M. Gagnon, Ph.D. http://www.info2.uqam.ca/~egagnon/ > SableVM: http://www.sablevm.org/ > SableCC: http://www.sablecc.org/ > _______________________________________________ > SableVM-devel mailing list > [email protected] > http://sablevm.org/lists/control/listinfo/sablevm-devel > >