Let me answer my own question. I stumbled into a part answer. The callback parameter to GcScanHandles does nothing. There is code in objecthandle.cpp that hardcodes the callback function to be GCHeap::Promote. Would it make sense to carry the callback function pointer in ScanContext?
Todd > -----Original Message----- > From: Discussion of the Rotor Shared Source CLI implementation > [mailto:[EMAIL PROTECTED] Behalf Of Anderson, Todd A > Sent: Tuesday, December 30, 2003 2:57 PM > To: [EMAIL PROTECTED] > Subject: Re: [DOTNET-ROTOR] Rotor root set enumeration question. > > > Hi Barry, > > I'm tinkering and trying to replace the Rotor GC. > I am currently using GcScanRoots and GcScanHandles > with my own callback function (not GCHeap::Promote) > for my root set enumeration but I don't think this is > including the string roots from the LargeHeapHandleTable. > Any suggestions? > > Todd > > > -----Original Message----- > > From: Discussion of the Rotor Shared Source CLI implementation > > [mailto:[EMAIL PROTECTED] Behalf Of Barry Bond > > Sent: Tuesday, December 30, 2003 12:06 PM > > To: [EMAIL PROTECTED] > > Subject: Re: [DOTNET-ROTOR] Rotor root set enumeration question. > > > > > > clr/src/vm/appdomain.cpp pre-allocates some exceptions in > > SystemDomain::CreatePreallocatedExceptions() by calling > CreateHandle() > > then StoreObjectInHandle(). They boil down into calls to > > clr/src/vm/objecthandle.cpp. The GC calls objecthandle.cpp's > > Ref_TraceNormalRoots() from within CNameSpace::GcScanHandles() in > > gcscan.cpp, to enumerate these objects. > > > > For strings, clr/src/vm/appdomain.cpp's SystemDomain::Init() > > constructs > > a thing called the GlobalStringLiteralMap. See > > clr/src/vm/stringliteralmap.cpp for its implementation details. It > > looks like the m_LargeHeapHandleTable is implemented in > appdomain.cpp. > > > > This posting is provided "AS IS" with no warranties, and confers no > > rights. > > Barry > > > > -----Original Message----- > > From: Discussion of the Rotor Shared Source CLI implementation > > [mailto:[EMAIL PROTECTED] On Behalf Of > > Anderson, Todd A > > Sent: Tuesday, December 30, 2003 10:48 AM > > To: [EMAIL PROTECTED] > > Subject: [DOTNET-ROTOR] Rotor root set enumeration question. > > > > Does anybody know how Rotor enumerates the roots for > > things like preallocated exceptions and especially for > > string literals? String literals seem to be allocated > > through the GC memory allocation routines but I don't > > see where/how those roots are enumerated at collection > > time. > > > > thanks, > > > > Todd > > > > =================================== > > This list is hosted by DevelopMentor(r) http://www.develop.com > > NEW! ASP.NET courses you may be interested in: > > > > 2 Days of ASP.NET, 29 Sept 2003, in Redmond > > http://www.develop.com/courses/2daspdotnet > > > > Guerrilla ASP.NET, 13 Oct 2003, in Boston > > http://www.develop.com/courses/gaspdotnet > > > > View archives and manage your subscription(s) at > > http://discuss.develop.com > > > > =================================== > > This list is hosted by DevelopMentorŪ http://www.develop.com > > NEW! ASP.NET courses you may be interested in: > > > > 2 Days of ASP.NET, 29 Sept 2003, in Redmond > > http://www.develop.com/courses/2daspdotnet > > > > Guerrilla ASP.NET, 13 Oct 2003, in Boston > > http://www.develop.com/courses/gaspdotnet > > > > View archives and manage your subscription(s) at > http://discuss.develop.com > > =================================== > This list is hosted by DevelopMentorŪ http://www.develop.com > NEW! ASP.NET courses you may be interested in: > > 2 Days of ASP.NET, 29 Sept 2003, in Redmond > http://www.develop.com/courses/2daspdotnet > > Guerrilla ASP.NET, 13 Oct 2003, in Boston > http://www.develop.com/courses/gaspdotnet > > View archives and manage your subscription(s) at http://discuss.develop.com =================================== This list is hosted by DevelopMentorŪ http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com