Maurilio, It does NOT have to be small, but it must be SELF-CONTAINED, so that we can build and test. But IAE, I strongly suspect this is a C coding error outside of xHarbour core.
Ron -------------------------------------------------- From: "Maurilio Longo" <[email protected]> Sent: Thursday, January 22, 2009 6:15 AM To: "Xharbour-Developers List" <[email protected]>; "Ron Pinkas" <[email protected]> Subject: [xHarbour-developers] destructors cannot be executed?!? > Hi Ron and all, > > I've sent a message on january the 7th with the same Subject, I think I've > found what makes my code give an error; but now I'm getting a new error: > > Unrecoverable error 9020: An item was going to be copied to itself from > hb_itemCopy() > > So, the previous version was working ok, the new one, does not give the > previous error, but a new one during the execution of the process. > > > Anyway, in my code I was calling, from .prg to .c, a function with this > syntax: > > > if __ClsMsgAssigned( Self, "READ" ) > curl_easy_setopt( ::pcURL, CURLOPT_WRITEDATA, Self ) > endif > > So, I was calling C code passing to it Self, the C code function was > written > this way: > > HB_FUNC(CURL_EASY_SETOPT) > { > CURL * curl = hb_parptr( 1 ); > CURLcode res = 0; > int iOption = hb_parni( 2 ); > PHB_ITEM pObject = NULL; > PHB_DYNS pSym_AddSList = NULL; > > if ( iOption == CURLOPT_WRITEDATA ) { > res = curl_easy_setopt( curl, CURLOPT_WRITEFUNCTION, > write_function ); > > pObject = hb_param( 3, HB_IT_OBJECT ); > res = curl_easy_setopt( curl, iOption, pObject (void *) hb_itemNew( > pObject ) ); > > ... > > } > > Please note that the 'Self' I'm receiving is used to call hb_itemNew( > pObject > ) which is than associated with the curl pointer through the call to > curl_easy_setopt(). > > This code is an OO version of contrib\hbcurl, by the way. > > Now, If I don't call hb_itemNew(), but I simply pass pObject to > curl_easy_setopt() I don't have anymore the: > > Unrecoverable error 9000: Destructors disabled! Destructor of class: > 'TFTP' > can't be executed. > Called from hb_vmQuit() > > but I have the new error as I said before, so the question is: what is the > correct way to handle this issue? > > I have to add that I've seen this hb_itemNew() to associate a .prg object > to > some .c variable before, for example inside hwGUI (if I'm not wrong) and > it > was working OK in my program up to a few months ago. > > Is this description enough to see where is the 'problem'? > > Maurilio. > > PS. I did try to create a self contained example, but I was not able to > have a > small piece of code showing this problem. > > > -- > __________ > | | | |__| Maurilio Longo > |_|_|_|____| farmaconsult s.r.l. > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > SourcForge Community > SourceForge wants to tell your story. > http://p.sf.net/sfu/sf-spreadtheword > _______________________________________________ > xHarbour-developers mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/xharbour-developers > ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ xHarbour-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/xharbour-developers

