On Mon, Mar 31, 2008 at 01:02:49PM +0100, Daniel P. Berrange wrote: > On Mon, Mar 31, 2008 at 11:00:56AM +0100, Richard W.M. Jones wrote: > > The 'conn', 'dom' and 'net' fields in a virterror can't be accessed > > safely, particularly from a garbage-collected language. The only safe > > thing one could do with them is a physical equality test on the > > pointer against an existing conn/dom/net pointer. > > > > But the solution isn't to copy the dom object, since in a GC-d > > language someone could grab a handle to the copied dom which would > > have a different lifetime from the error object. If anything the > > solution would be to remove those fields from the error object since > > they are highly unlikely to be useful in any real world application. > > We can't do this because of backwards compatibility promises but we > > should instead deprecate them. > > We should at the very least NULL-ify the dom/net fields in the Error > object associated with the Connection when we free the Domain/Network > object. agreed, very simple test but avoids dandling pointers. > We also probably need to re-arrange the remote daemon code a > little so that it serializes to XDR format before the Domain/Network object > are free'd. > > I agree that deep copying isn't the answer here & messes up the reference > counting and will cause potential memory leaks. yes, this will become unmanageable very fast i'm afraid. Daniel -- Red Hat Virtualization group http://redhat.com/virtualization/ Daniel Veillard | virtualization library http://libvirt.org/ veillard@xxxxxxxxxx | libxml GNOME XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list