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

Reply via email to