Ji-Yong, Please direct your question to the Xerces-J User mailing list: [EMAIL PROTECTED]
----- Original Message ----- From: "Ji-Yong D. Chung" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Sunday, February 18, 2001 10:29 PM Subject: heap allocation > I have downloaded Xerces source code > and I was reading through some documentation. > > I read that DOM objects should be allocated > on stack (basically via local variables of funcions) -- > I understand why the policy is there. Removing > and adding nodes of DOM tree can cause havoc > with C++ pointers. > > My question is: is there a way (even a hacker's way) > around this restriction? Is there a way to allocate > DOM document on the heap instead of > on the stack without causing system crashes? > . > My problem is that (1) the document must > outlast the routine that created it -- but the automatic > variable mechanism will surely cause my document object to > vanish when local variables go out of scope. > (2) before a second routine takes over, I need > to place the referene to the document somewhere > (due to the nature of what I am doing, I cannot > just pass the result of that creation to the second > routine). > > Similarly, if I want to get a child node, I should be able > to do one of the following: > > ============================= > ------ > > DOM_Node *nd = &(doc -> getChildNodes()); > delete nd; // since I am doing things on the heap > ------ > or have a class wrapper around DOM documement > so that delete is only called implicitly: > > class wrapper > { > DOM_Node nd; > }; > > ============================ > > It seems to me that the underlying reference > counting mechanism should work to ensure that > no bad things happen, even if I were to the preceding. > (provided that I have a properly matching destructor > for every constructor). > > From what I understand about stack and heap, > I can't see anything wrong with it, provided I carefully > use delete operator > > Am I wrong? > > > I would really be grateful for any comments/help. >