This is a basic feature of our GC allocator. Current problem is that all objects use one common GC allocator, with one commno fingerprint.
Brgds, Viktor On 2010 Apr 12, at 01:28, francesco perillo wrote: > I have yet another proposal: > in QGC_POINTER_* a new member should be added, call it "fingerprint". > > Every QObject should be issued a different "fingerprint", let's say > QApplication is 1, QPushButton is 2 and so on. > So when we get somehow a QGC_POINTER_* we can get back it's c++ class... > hbqt_gcpointer may accept as second parameter the fingerprint of the > requested object and RTE if not matched.... it may be 0 to not do any > check... > > typedef struct > { > void * ph; > bool bNew; > QT_G_FUNC_PTR func; > QPointer< QPushButton > pq; > long fingerprint; > } QGC_POINTER_QPushButton; > > p->bNew = bNew; > p->func = hbqt_gcRelease_QPushButton; > p->fingerprint = 2 ; > > ... > #define hbqt_par_QPushButton( n ) ( ( QPushButton > * ) hbqt_gcpointer( n ) ) > becomes > #define hbqt_par_QPushButton( n ) ( ( QPushButton > * ) hbqt_gcpointer( n , 2 ) ) > > and hbqt_gcpinter is amended as necessary. > > It must be said that hbqt_gcpointer is allways called via the previous > defines. Only in hbqt_destruct.cpp is called directly twice with -1 > and a couple of times with iParam... > _______________________________________________ > Harbour mailing list (attachment size limit: 40KB) > Harbour@harbour-project.org > http://lists.harbour-project.org/mailman/listinfo/harbour _______________________________________________ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour