OK, I've uploaded the code to IUP repo.
What I mean in last message is that if I remove the type assignment in line 
19 of

https://github.com/joa-quim/IUP.jl/blob/master/examples/cdtest_.jl

than the line 133 does not error, otherwise it happens what I described.
Sorry but don't know how to make a shorter example.

quarta-feira, 14 de Janeiro de 2015 às 18:58:54 UTC, Milan Bouchet-Valat 
escreveu:
>
> Le mercredi 14 janvier 2015 à 10:44 -0800, J Luis a écrit : 
> > What I found is if, for simplification, I restrict the type to (that 
> > is without type assignment) 
> > 
> > type tCTC_l 
> >     iup_canvas 
> > end 
> > 
> > than it works. But if I change it to 
> > 
> > type tCTC_l 
> >     iup_canvas::Ptr{cdCanvas} 
> > end 
> > 
> > it errors again. For curiosity I tried also 
> > 
> > type tCTC_l 
> >     iup_canvas::Int64 
> > end 
> > 
> > and now 
> > 
> > t => Ptr{cdCanvas} @0x0000000021c3f4a0 
> > ctgc_l.iup_canvas => 566490272 
> > ERROR: `cdActivate` has no method matching cdActivate(::Int64) 
> > 
> > that is, it converted the Ptr{cdCanvas} (the 't') to Int64, so it 
> > seams that in the first instance it converted one Ptr{cdCanvas} to 
> > another Ptr{cdCanvas} ending up with TWO declarations of the 
> > Ptr{cdCanvas}. 
> > Does it make any sense? 
> No. I think you should at the very least show us a copy/paste of the 
> code you run. Debugging without a reproducible example is hard enough; 
> debugging without seeing the commands that triggered the bug is 
> impossible. 
>
>
> Regards 
>
> > quarta-feira, 14 de Janeiro de 2015 às 17:50:51 UTC, J Luis escreveu: 
> >         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