RE: Function to see if a pointer is on the stack

"Jon Watte" <[email protected]>
Newsgroups gmane.games.devel.windows
Message-ID <[email protected]>
The most reliable way of doing this is to use a class for
your argument rather than bare pointers, and have a
constructor from bare pointers, and use reference counting
in the class implementation -- this is almost exactly what
std::string<> already does for you!

Else, you can register the stack pointer in main() (or the
entry function for each thread/fiber), and get the stack
pointer in the called function, and compare -- this is not
entirely portable, because the stack may grow up on some
architectures.

// non-threaded version -- if you use threads or fibers,
// you need one gBase per thread/fiber

char * gBase;

void register_main( char * base ) {
  gBase = base;
}

bool is_stack_pointer( char const * ptr ) {
  char top[10];
  assert( top < gBase ); // else stack grows up
  return (ptr < gBase) && (ptr > top);
}

int main() {
  ...
  char junk[ 10 ];
  register_main( junk );
  ...
}

void some_func( char * anArg ) {
  if( is_stack_pointer( anArg ) ) {
    ...
  }
}


-----Original Message-----
From: [email protected]
[mailto:[email protected]]On Behalf Of
Jacob Turner (Core Design Ltd)
Sent: Thursday, August 19, 2004 9:30 AM
To: [email protected]
Subject: [GD-Windows] Function to see if a pointer is on the stack


Is there some simple and reliable code for a console or windows app to test
if a pointer value is on the stack or not ?

If the pointer is on the stack (e.g. a string) then we want to copy the
string to heap memory for reuse later on.

Cheers

Jake


-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
Gamedevlists-windows mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows
Archives:
http://sourceforge.net/mailarchive/forum.php?forum_idU5



-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
Gamedevlists-windows mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows
Archives:
http://sourceforge.net/mailarchive/forum.php?forum_id=555
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.