This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Re[2]: Rebase 1.5-1: Causes invalid page fault



> -----Original Message-----
> > > ./basetsd.h:100:typedef  unsigned long ULONG_PTR, *PULONG_PTR;
> > > So it is not a pointer to pointer. They have chosen a strange name
> > > though :)
> 
> > Which "it" are you talking about?  The typedef you found defines
> > ULONG_PTR as a pointer to unsigned long, and also defines PULONG_PTR
> > as a pointer to pointer to unsigned long.  But I thought the issue
> > was the type of NewImageBase.
> 
> No, `typedef unsigned long ULONG_PTR' defines `ULONG_PTR' as a synonym
> for `unsigned long'.
> 
> Btw., if I remember the MSDN documentation correctly, ULONG_PTR is
> supposed an integer with the the same /size/ as a pointer, but also a
> typedef for unsigned long where possible.  Hence the name.
> 
> > The question was whether
> > 	ULONG_PTR *NewImageBase,
> > defined a pointer to a pointer --- it does!  *NewImageBase defines
> > NewImageBase as a pointer to ULONG_PTR, which is itself a pointer,
> > so it is, again, a pointer-to-pointer-to-unsigned-long.
> 
> No, it's a pointer to unsigned long which is really a pointer.
> 
> Jon Cast
Ack!  You are so right!  I was blinded by the "_PTR" in the name ULONG_PTR,
and didn't understand that that was the "strange name" you meant.

My apologies to all.



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]