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)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to