The following comment in clr\src\vm\appdomain.cpp has the explanation:

    // Retrieve the pointer to the data inside the array. This is legal
since the array
    // is located in the large object heap and is guaranteed not to
move.
    m_pArrayDataPtr = (OBJECTREF *)HandleArrayObj->GetDataPtr();

-Jan

This posting is provided "AS IS" with no warranties, and confers no
rights.

-----Original Message-----
From: Discussion of the Rotor Shared Source CLI implementation
[mailto:[EMAIL PROTECTED] On Behalf Of Anderson, Todd A
Sent: Tuesday, February 17, 2004 9:03 AM
To: [EMAIL PROTECTED]
Subject: [DOTNET-ROTOR] LargeHeapHandleBucket root enumeration question

While Rotor scans the LargeHeapHandleBucket structure, it 
evidently identifies a root from the m_hndHandleArray field.
However, the m_pArrayDataPtr field in the same LargeHeapHandleBucket
object looks to be an interior pointer to the start of the data of 
the object pointed to by the root just identified.  However, this
interior pointer root is not identified by CNameSpace::GcScanHandles()
as far as I can tell.  Is m_pArrayDataPtr supposed to be identified
as an interior pointer root?  Are the objects pointed to by the
handle table implicitly pinned?  If the interior pointer root is
not identified then how is it updated if the array is moved?

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

Reply via email to