Le mercredi 14 janvier 2015 à 07:42 -0800, J Luis a écrit :
> Well, I can make the current (failing) code available in the IUP repo
> but to run it implies installing the IUP lib, and IUP.jl which
> probably no one tested in other than Windows.
But the problem does not seem to involve IUP (or via a nasty memory
corruption bug). You should be able to reproduce it with a short
artificial example.


Regards

> quarta-feira, 14 de Janeiro de 2015 às 15:30:20 UTC, Milan Bouchet-Valat 
> escreveu:
>         Le mercredi 14 janvier 2015 à 06:54 -0800, J Luis a écrit : 
>         > I already fall in those two forms of troubles (double definition 
> and 
>         > double inclusion of the file where the type is defined) so I'm 
> aware 
>         > of it. As much as I can tell with grepping, that is not occurring 
>         > now. 
>         > Maybe a third (unknown to me) form of this type of issue? 
>         Would you be able to create a reproducible example? 
>         
>         
>         Regards 
>         
>         > quarta-feira, 14 de Janeiro de 2015 às 14:41:56 UTC, Keno Fischer 
>         > escreveu: 
>         >         Are you maybe accidentally defining cdCanvas twice or in 
> two 
>         >         different modules? 
>         >         
>         >         On Wed, Jan 14, 2015 at 3:40 PM, J Luis <[email protected]> 
>         >         wrote: 
>         >                 BTW, if that matters, 'ctgc' is a global variable. 
>         >                 
>         >                 quarta-feira, 14 de Janeiro de 2015 às 14:37:05 
> UTC, J 
>         >                 Luis escreveu: 
>         >                         Hi, thanks for looking into this. 
>         >                         
>         >                         If I make them show, as 
>         >                         
>         >                         @show ctgc.iup_canvas 
>         >                             ctgc.iup_canvas = t 
>         >                         @show t 
>         >                         @show ctgc.iup_canvas 
>         >                         
>         >                         it 'shows' 
>         >                         
>         >                         ctgc.iup_canvas => Ptr{cdCanvas} 
>         >                         @0x0000000000000000 
>         >                         t => Ptr{cdCanvas} @0x0000000022c6d6c0 
>         >                         ctgc.iup_canvas => Ptr{cdCanvas} 
>         >                         @0x0000000022c6d6c0 
>         >                         
>         >                         which shows that type has not changed after 
>         >                         the attribution and  that it has the 
> correct 
>         >                         return type of cdCreateCanvas(). 
>         >                         That is why I initialized the ctgc type 
> with 
>         >                         
>         >                         convert(Ptr{cdCanvas},0) 
>         >                         
>         >                         (see first member in my first post) 
>         >                         
>         >                         
>         >                         quarta-feira, 14 de Janeiro de 2015 às 
>         >                         13:39:21 UTC, Milan Bouchet-Valat escreveu: 
>         >                                 Le mercredi 14 janvier 2015 à 05:32 
>         >                                 -0800, J Luis a écrit : 
>         >                                 > Hi, 
>         >                                 > I have had quite some head-aches 
>         >                                 with types (converted from C 
> structs) 
>         >                                 > but this one wins. 
>         >                                 > 
>         >                                 > I have this type (from IUP) 
>         >                                 > 
>         >                                 > 
>         >                                 > type tCTC 
>         >                                 >     iup_canvas::Ptr{cdCanvas} 
>         >                                 >     w::Cint 
>         >                                 >     h::Cint 
>         >                                 > ... 
>         >                                 > 
>         >                                 > which I initialize as 
>         >                                 > 
>         >                                 > ctgc = tCTC( 
>         >                                 >         convert(Ptr{cdCanvas},0), 
>         >                                 >         int32(0), int32(0), 
>         >                                 > ... 
>         >                                 > 
>         >                                 > and now the mystery. 
>         >                                 > 
>         >                                 >     t = 
>         >                                 cdCreateCanvas(cdContextIup(), 
>         >                                 IupGetHandle("cnvMain")) 
>         >                                 >     ctgc.iup_canvas = t 
>         >                                 >     cdActivate(t); 
>         >                                 >     cdActivate(ctgc.iup_canvas); 
>         >                                 > 
>         >                                 > 
>         >                                 > the last line in the chunk above 
>         >                                 errors with 
>         >                                 > 
>         >                                 > 
>         >                                 > ERROR: `cdActivate` has no method 
>         >                                 matching 
> cdActivate(::Ptr{cdCanvas}) 
>         >                                 >  in CDTestInit at 
> C:\programs\Gits 
>         >                                 \IUP.jl\examples\cdtest_.jl:125 
>         >                                 >  in cdtest at C:\programs\Gits 
>         >                                 \IUP.jl\examples\cdtest_.jl:92 
>         >                                 > 
>         >                                 > 
>         >                                 > So `t` and `ctgc.iup_canvas` are 
>         >                                 actually two different entities 
>         >                                 > (although their pointers are ofc 
> the 
>         >                                 same as I can see if I @show 
>         >                                 > them)? 
>         >                                 Well, you need to show us more 
>         >                                 details, e.g. tell us what 
>         >                                 cdCreateCanvas() does, and what 
> type 
>         >                                 it returns. The pointers might hold 
>         >                                 the same address, but they still 
> may 
>         >                                 be of different types. @show should 
>         >                                 make this visible, but without the 
>         >                                 output we cannot check. 
>         >                                 
>         >                                 
>         >                                 Regards 
>         >                                 
>         >         
>         >         
>         

Reply via email to