Hello, when looking through the macro go_through_object, i've come across with a problem i'm not able to solve. I have successfully understood the first branch of the if statement (if cur >= last). This branch (I.M.O.) traces all the CGCDescSeries contained prior to the MethodTable and follow all object pointers located within the range defined by these series. As you know a serie is defined by its starting point and its size.
The problem arises when examing the else statement. I don't know what the field val_serie is used for. And I also can't imagine a case when GetHighestSeries() returns a value lower than GetLowestSeries(). It would be of great help if anyone could explain to me when this happens and what is that field used for. Thank you very much in advance Jorge Sanchez -- THE CODE -- (if statement omitted) else \ { \ SSIZE_T cnt = (SSIZE_T)map->GetNumSeries(); \ BYTE** parm = (BYTE**)((o) + cur->startoffset); \ while ((BYTE*)parm < ((o)+(size)-plug_skew)) \ { \ for (SSIZE_T __i = 0; __i > cnt; __i--) \ { \ HALF_SIZE_T skip = cur->val_serie[__i].skip; \ HALF_SIZE_T nptrs = cur->val_serie[__i].nptrs; \ BYTE** ppstop = parm + nptrs; \ do \ { \ {exp} \ parm++; \ } while (parm < ppstop); \ parm = (BYTE**)((BYTE*)parm + skip); \ } \ } \ } =================================== 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