francesco perillo wrote:
>
> I have yet another proposal:
> in QGC_POINTER_* a new member should be added, call it "fingerprint".
>
Let me _repeat_ again:
Problem is not with functioning of the objects,
that is working perfect. It lies when object is _destructed_
by Qt and when Harbour tries to _free_ the pointer.
This is the scenario we should base our findings...
oWnd contains oPushButton, oMenu's and lot other controls - comples
parent child hirarchy. Now suppose oWnd goes out of scope, Harbour
schedules garbage collection and it is not know in what order it will
release the variables. Assume, oWidget is released first which contains
many others. Our destructor will be called which in turn will issue
delete ( QWidget * ) p->ph . The request will reach Qt GC ( they may
call is
with another name ) and Qt deletes oWidget and, by its way of
handellings,
Qt will also delete all childeren. The pointers held in Harbour GC of
those
children are still there to be released as per same cycle. And voila
GPF, because
those are already been freed by Qt.
If you study hbXBP, I have implemented object destruction very
carefully.
Child first, parent next. That is why oDlg has ever to be issued
:destroy()
method which does not leave anything for GC to free them in arbitratory
fashion.
The whole point os distability is the way we need to handle destruction.
Hope this info may prove helpful to hit the right solution.
-----
enjoy hbIDEing...
Pritpal Bedi
http://hbide.vouch.info/
--
View this message in context:
http://n2.nabble.com/Improve-on-hbqt-object-handling-tp4887521p4887614.html
Sent from the harbour-devel mailing list archive at Nabble.com.
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour