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 > > > > > > >
