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