I have been beating my head against the wall trying to figure out a
bug in our application and I don't know if I understand enough about
how OpenSG works in order to find the bug. The basic idea is that our
application creates some geometry in a background thread, and then
syncs that geometry into the OpenSG scene graph in the primordial
thread. Later on the geometry is removed from the graph and deleted.
While trying to delete the object that contains the geometry I get the
following stack trace. It appears that while trying to clear the
geometry properties there is an invalid pointer access. Does anyone
have any ideas and/or guidance as to what could be causing this?


        00000000()      
>       
> OSGDrawable.dll!OSG::ChildAccessHandler<OSG::UnrecordedRefCountPolicy>::unlinkParent(OSG::FieldContainer
>  * const pParent=0x18da6900, OSG::FieldContainer * const pChild=0x0b077370, 
> const unsigned short parentFieldId=3)  Line 88      C++
        
OSGDrawable.dll!OSG::ChildAccessHandler<OSG::UnrecordedRefCountPolicy>::onReplace(OSG::PointerSFieldBase
* const pSField=0x18da69a0, OSG::FieldContainer * const
pOldObj=0x0b077370, OSG::FieldContainer * const pNewObj=0x00000000)
Line 167 + 0x34 bytes   C++
        
OSGDrawable.dll!OSG::PointerSFieldCommon<OSG::ChildAccessHandler<OSG::UnrecordedRefCountPolicy>,1>::ptrStoreSet(OSG::FieldContainer
* const pNewObj=0x00000000)  Line 107 + 0x13 bytes      C++
        OSGDrawable.dll!OSG::ChildPointerSField<OSG::GeoIntegralProperty
*,OSG::UnrecordedRefCountPolicy,1>::setValue(OSG::GeoIntegralProperty
* const value=0x00000000)  Line 110     C++
        OSGDrawable.dll!OSG::GeometryBase::setTypes(OSG::GeoIntegralProperty
* const value=0x00000000)  Line 91      C++
        OSGDrawable.dll!OSG::GeometryBase::resolveLinks()  Line 1226    C++
        OSGBase.dll!OSG::FieldContainer::subReferenceUnrecorded()  Line 237     
C++
        OSGBase.dll!OSG::UnrecordedRefCountPolicy::subRef()  Line 145   C++
        
OSGBase.dll!OSG::ChildAccessHandler<OSG::UnrecordedRefCountPolicy>::onReplace()
 Line 169 + 0x9 bytes   C++
        
OSGBase.dll!OSG::PointerSFieldCommon<OSG::ChildAccessHandler<OSG::UnrecordedRefCountPolicy>,1>::ptrStoreSet()
 Line 107 + 0x13 bytes  C++
        OSGBase.dll!OSG::ChildPointerSField<OSG::NodeCore
*,OSG::UnrecordedRefCountPolicy,1>::setValue()  Line 110        C++
        OSGBase.dll!OSG::Node::resolveLinks()  Line 983 C++
        OSGBase.dll!OSG::FieldContainer::subReferenceUnrecorded()  Line 237     
C++
        OSGBase.dll!OSG::UnrecordedRefCountPolicy::subRef()  Line 145   C++
        
OSGBase.dll!OSG::ChildAccessHandler<OSG::UnrecordedRefCountPolicy>::onSub()
 Line 151 + 0x9 bytes   C++
        
OSGBase.dll!OSG::PointerMFieldCommon<OSG::ChildAccessHandler<OSG::UnrecordedRefCountPolicy>,1>::ptrStoreClear()
 Line 319 + 0x14 bytes  C++
        OSGBase.dll!OSG::ChildPointerMField<OSG::Node
*,OSG::UnrecordedRefCountPolicy,1>::clear()  Line 1066  C++
        OSGBase.dll!OSG::Node::resolveLinks()  Line 984 C++
        OSGBase.dll!OSG::FieldContainer::subReferenceRecorded()  Line 153       
C++
        p5_dve_earth.dll!OSG::RecordedRefCountPolicy::subRef(OSG::FieldContainer
* const objectP=0x2318fe50)  Line 68    C++
        p5_dve_earth.dll!OSG::RecordedRefCountPolicy::setRefd<OSG::Node
*,OSG::Node *>(OSG::Node * & pTarget=0x2318fe50, OSG::Node *
pSource=0x00000000)  Line 75 + 0xb bytes        C++
        
p5_dve_earth.dll!OSG::RefCountPtr<OSG::Node,OSG::MTRecordedRefCountPolicy>::operator=(OSG::Node
* const objectPtr=0x00000000)  Line 133 + 0xd bytes     C++
        
p5_dve_earth.dll!OSG::CoredNodeMTRefPtr<OSG::DoubleTransform>::setNode(OSG::Node
* const pNode=0x00000000)  Line 489     C++
        
p5_dve_earth.dll!OSG::CoredNodeMTRefPtr<OSG::DoubleTransform>::~CoredNodeMTRefPtr<OSG::DoubleTransform>()
 Line 352       C++
        p5_dve_earth.dll!dve::LandTile::~LandTile()  Line 26 + 0x90 bytes       
C++
        p5_dve_earth.dll!dve::LandTile::`scalar deleting destructor'()  +
0xf bytes       C++
        
p5_dve_earth.dll!dve::SharedObjectDeleter<dve::LandTile>::operator()(dve::LandTile
* p=0x189b07e0)  Line 88 + 0x20 bytes   C++
        p5_dve_earth.dll!boost::detail::sp_counted_impl_pd<dve::LandTile
*,dve::SharedObjectDeleter<dve::LandTile> >::dispose()  Line 145        C++
        p5_dve_earth.dll!boost::detail::sp_counted_base::release()  Line 103    
C++
        p5_dve_earth.dll!boost::detail::shared_count::~shared_count()  Line 220 
C++
        
p5_dve_earth.dll!boost::shared_ptr<dve::LandTile>::~shared_ptr<dve::LandTile>()
 + 0x3f bytes   C++
        p5_dve_earth.dll!dve::TileLayer::updateSectors(...)

Thanks,
Aron

------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to