On Sonntag, 22. Juni 2008, Phil Thompson wrote: > On Sun, 22 Jun 2008 12:53:41 +0200, "Arve Knudsen" <[EMAIL PROTECTED]> > > wrote: > > How does one normally treat references returned by SIP-wrapped C++ > > objects? I just determined a segmentation fault in my program resulted > > from an object first being obtained as a reference (in the C++ sense) > > from a C++ method, and then destroyed with the parent object. Does one > > normally keep in mind that the object dies implicitly with its C++ > > parent, or is there a way to have SIP give you copies rather than > > borrowed references? > > I will probably change SIP to make a copy when the reference is const. I > think this fixes most of the problem areas although it does introduce an > incompatibility. > > For example... > > const Status &status = foo->status(); > > while (!status.finished) > foo->process(); > > ...with the planned change a directly translated Python version would no > longer work. Instead you would have to move the call to status() to be > inside the loop... > > while not foo.status().finished: > foo.process()
But that change could seriously harm applications written using PyQt like eric4. I would have to scan through all the code, which could stop development for several weeks (or even months). Please don't do that!!!!! > > While I don't think there is anything in PyQt that would be affected by > this, SIP is used for much more than just PyQt. > > Phil > > _______________________________________________ > PyQt mailing list [email protected] > http://www.riverbankcomputing.com/mailman/listinfo/pyqt Regards, Detlev -- Detlev Offenbach [EMAIL PROTECTED] _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
