Quoting Tomas Frydrych <[EMAIL PROTECTED]>:

> This is exactly the same problem that we were having couple of 
> days ago. I spent good five hours tracing this then, and it was 
> caused by creating a temporary copy of the menu string vector on 
> the stack resulting in stack overflow (the reason why the id did not 
> match getMenuId was that the cretion of the temporary copy on the 
> stack overwriten part of the heap in use). We really need to find out 
> why the debug build is running out of stack space and fix that, this 
> not going to go away even if it works with the current configuration, 
> it merely means that the heap is used differently, but it is going to 
> come back to haunt us.

Answer: stop making temporary copies on the stack. Seriously - assume we have 
a function that looks like this:

MyClass & myFunc();

Do *not* do this:

// create copy of a reference
MyClass c = myFunc ();

Instead, do this:

// just a reference
MyClass &c = myFunc ();

Passing around pointers when we don't need to sucks - we have to then do 
checks for null and such problems. Motto: references are usually your friends.

Dom

Reply via email to