Hi, On Mon, 2010-06-28 at 17:50 -0500, Carsten Neumann wrote: > Hello Gerrit, > > Gerrit Voß wrote: > > after making two minor changes, remove the artificial node level > > the osg loader introduces and to handle the name attachment correctly > > while writing, I get the attached diff when reading and writing the > > file (w1.osg) with testWindowGLUT (r2449). I will push the changes to > > the latest version. Assuming still have the problems could you run your > > test program with OSG_LOG_LEVEL=10 and sent me the output. And maybe > > try it with testWindowGLUT (the writing is disabled by default with > > #if 0). > > > > That the beacons have a node but no core is a bug inside the writer > > which can access and object even if there is only a weak reference > > left. While running the system itself sees no beacon. > > urgh, this is a nasty side effect of the pointer fields' magic to make > them 'usable' as SF/MFFieldContainerPtr independent of what concrete > container type they point to or what ref counting is used. Wish I had > noticed that gap earlier... :( > > The question is how to plug that hole without making it > impossible/inconvenient to write generic code that just follows pointers > to other containers? One (rather big) solution would be to remove the > Pointer{S|M}FieldBase types and operator-> from FieldHandle and instead > expand FieldHandle's interface a bit so that it allows accessing pointer > fields through virtual functions that take/return FieldContainer*.
hmm, I was thinking about that, but I don't like it that much. > Hm, would be nice if there was a way to avoid all that, but especially > for MFields it seems difficult, because PointerMFieldBase hands out > iterators which know nothing about ref counting (they are plain > std::vector<FieldContainer*>::iterator, not the ref counting aware > wrappers used by the actual PointerMField<> template). Any ideas? I planned to add custom iterators, all other pointer fields have them anyway. I fixed the SField part already so that should cover most of the use cases (I actually don't remember having a weak mfield somewhere). I just have to find the time ;) kind regards gerrit ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ Opensg-users mailing list Opensg-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensg-users