pfDelete problems

New Message Reply Date view Thread view Subject view Author view

chris (chris++at++scotch.physics.ucla.edu)
Tue, 8 Apr 1997 16:11:41 -0700


Hi all.

I'm under the impression that pfDelete will take a node of a
tree (any node) and recursively delete all objects underneath (except
for the the objects mentioned in the man page pfBuffer,pfPipe,etc.).

Is it this simple, or is there more to it? Does it matter how the
memory for the tree nodes was allocated? pfMalloc
vs. new? I'm wondering why pfDelete is killing my dbase process:

void pageDBase()
{
        static pfBuffer *buf=NULL;
// Get PID of DBase process
        static pid_t DBasePID = getpid();
// Do this one time only
        if(buf==NULL)
        {
                buf = new pfBuffer;
                buf->select();
                cout<<"DBase PID is "<<DBasePID<<endl;
        }

// If Vectors have been requested, invoke VectorFieldHandler
        if(Shared->VecField)
                VectorFieldHandler();
// Otherwise, delete scene
        else
        {
                Shared->scene->bufferRemoveChild(Shared->VecDCS);
                pfDelete(Shared->VecDCS);
        }

        Shared->time = (Shared->time < END_TIME)? Shared->time+TIME_INC:START_TIME;
        pfBuffer::merge();
        pfDBase();
}

The call to pfDelete() causes the following dump:

   0 pfGroup::checkDelete(<stripped>) ["pfGroup.C":84, 0x5fe15a38]
   1 pfBuffer::pf_deleteMem(<stripped>) ["pfBuffer.C":1316, 0x5fdfabf0]
   2 pfBuffer::checkDelete(<stripped>) ["pfBuffer.C":1345, 0x5fdf7ab0]
   3 pageDBase() ["Dbase.C":226, 0x0042437c]
   4 mpDBase() ["pfProcess.C":3157, 0x5fe8b6c0]
   5 pfConfig(<stripped>) ["pfProcess.C":1708, 0x5fe88124]
   6 main(argc = 3, argv = 0x7fff2f24) ["Main.C":311, 0x004213a8]
   7 __istart(<stripped>) ["crt1tinit.s":13, 0x004202d0]

If pfDelete() is replaced with pfAsyncDelete() then the pfDBase() call dumps
the following

   0 pfMemory::isOfType(<stripped>) ["pfMemory.h":103, 0x5fdf5038]
   1 pfBuffer::pf_destroyMem(<stripped>) ["pfBuffer.C":1402, 0x5fdfacc0]
   2 pfDBase(<stripped>) ["pfProcess.C":3058, 0x5fe8b304]
   3 pageDBase() ["Dbase.C":231, 0x004243f4]
   4 mpDBase() ["pfProcess.C":3157, 0x5fe8b6c0]
   5 pfConfig(<stripped>) ["pfProcess.C":1708, 0x5fe88124]
   6 main(argc = 3, argv = 0x7fff2f24) ["Main.C":311, 0x004213a8]
   7 __istart(<stripped>) ["crt1tinit.s":13, 0x004202d0]

Any help here would be GREATLY appreciated.

Chris Mitchell
UCLA Physics Department
LAPD Plasma Lab
310-206-1772
chrism++at++ucla.edu
http://scotch.physics.ucla.edu/~chris
=======================================================================
List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer/
            Submissions: info-performer++at++sgi.com
        Admin. requests: info-performer-request++at++sgi.com


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:55:01 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.