-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi guys,

during a recent discussion at the office the question was raised whether or not 
there's
anything architectural that's stopping the owner of a ref-counted resource to 
return it
via a raw pointer and dereference (and hence delete it) before it's assigned to 
a
receiving ref_ptr.

Along these lines:
caller: Resource* r = foo();
owner:  return m_resource.get()
        (separate thread does m_resource.reset() or similar)
caller: ref_ptr p(r);

ref_ptr is assigned return value of 'foo()' which is now a dangling pointer.
(Yes, you would usually do 'ref_ptr p(foo())' but that's not fundamentally 
different
from the above sequence.)

To the best of my knowledge there's nothing in the design of ref_ptr that stops 
this,
but then again I don't believe it's an issue because otherwise we'd surely have 
heard.

Can anyone think of something (in the ABI, or elsewhere) that would prevent 
this?

Cheers,
/ulrich

- -- 
Fingerprint 0227 8EE1 2C64 8EF4 DA11 9864 FF16 0114 B9DA 3318
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBCAAGBQJTF5BRAAoJEP8WARS52jMYaHcH/igaGEoeexD1kdO2c3KNER/N
VCeLvswEvoWqTV6Q9legodZgGUgeAXClx8p+lZcM8uizTLy5LknDkRn87It58vF8
cJfZLcgbwuw/8BA3qF/iURn8taAgqBYM97t1tWPuLnoshnW1WU0C6G5Q8uJuWRUR
TfqVxCvcllXLOZPefOeS3cLI4YUgxIRywUGNTW5A+4/vNa2kJAvVr1ZDnuT8/fjg
vpYiV761iR+TM/bKPTS1+wsC723iYFSYl/7WL1Sgy/NevB/BUz9H75wtkyCXib3J
APlweXbYZF2RH20Mu/3hO59SLrOZ8wefEOtc2fXjNn2URAfzVmr9mPRtphJTCUE=
=YK8M
-----END PGP SIGNATURE-----
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to