vail@tegra.COM (Johnathan Vail) (03/16/91)
Is this a bug with Turbo c++? I am hoping it is just a difference between C and C++ that I am not aware of yet. This part of the program is still straight C. Given the following code, I want to call the function from the structure bp-> and pass to it the address of the structure (the pointer bp). Tracing shows that it gets there but bp is not being passed. i am thinking now that maybe the argument bp was already pushed (the optimizer moved it up a few lines or something) but the called function does not have it properly. (One more data: this used to work "old" tc before I started to convert the program to c++) ________________ THE C: /* * If there is a callback then call it with the ptr to the button */ if (bp->down_callback) { (bp->down_callback)(bp); } return; ________________ THE CPU INSTRUCTIONS: CPU 80286 #BUTTON#37: if (bp->down_callback) { cs:0796 837C0F00 cmp word ptr [si+0F],0000 cs:079A 7403 je #BUTTON#40 (079F) #BUTTON#38: (bp->down_callback)(bp); cs:079C FF540F call [si+0F] #BUTTON#40: return; cs:079F EB07 jmp #BUTTON#44 (07A8) #BUTTON#42: bp=bp->next; cs:07A1 8B7413 mov si,[si+13] ________________ THE typdef USED AND THE DECLARATION OF THE FIELD: typedef void (Function(ButtonPtr)); Function *down_callback; ________________ AND THE CALLED FUNCTION: void reverse_icon(ButtonPtr b) Thanks for any help. jv "Love is a snowmobile racing across the tundra and then suddenly it flips over, pinning you underneath. At night, the ice weasels come." --Matt Groening _____ | | Johnathan Vail | n1dxg@tegra.com |Tegra| (508) 663-7435 | N1DXG@448.625-(WorldNet) ----- jv@n1dxg.ampr.org {...sun!sunne ..uunet}!tegra!vail