Yes, an synthetic example would be nice, but I strongly suspect that if I 
was able to create one than it would because I had found the problem.

quarta-feira, 14 de Janeiro de 2015 às 16:15:20 UTC, Milan Bouchet-Valat 
escreveu:
>
> 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 <
> jmf...@gmail.com> 
> >         >         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