Thread overview
help posting a bug
Feb 24, 2006
Ant
Feb 24, 2006
Derek Parnell
Feb 24, 2006
John Reimer
Feb 25, 2006
Ant
Feb 25, 2006
John Reimer
Feb 24, 2006
Ant
Feb 27, 2006
Ant
Feb 27, 2006
John Reimer
February 24, 2006
this is what I get from a debug session:

(gdb) stepi
0x0804e0f9      359                                             dd.foo();
(gdb) stepi
0x0804e0fb      359                                             dd.foo();
(gdb) stepi
0x080c8568 in _D3gdk6Window6Window4moveFiiZv ()

dd is in fact an instance of class Window in module gtk.Window.
DMD got it right so far.

but why would the method void move(int,int) be called
instead of the method void foo() ????????????????

I posted a similar problem about a year and a half ago just to be ignored.

so help me: how do I post this in the bugs group?

Ant

PS what happens is that the window I have on the screen is
actually moved to somewhere else,
it actually disappears from the screen.
February 24, 2006
On Fri, 24 Feb 2006 00:36:31 +0000, Ant wrote:

> this is what I get from a debug session:
> 
> (gdb) stepi
> 0x0804e0f9      359                                             dd.foo();
> (gdb) stepi
> 0x0804e0fb      359                                             dd.foo();
> (gdb) stepi
> 0x080c8568 in _D3gdk6Window6Window4moveFiiZv ()
> 
> dd is in fact an instance of class Window in module gtk.Window. DMD got it right so far.
> 
> but why would the method void move(int,int) be called
> instead of the method void foo() ????????????????
> 
> I posted a similar problem about a year and a half ago just to be ignored.
> 
> so help me: how do I post this in the bugs group?

There is not enough information in this post to get any help but guesses.

Have you got some source code we can look at? I see from the DUI forum that you can't reduce the size of the source code to narrow it down. Well, maybe someone else can if you don't know how to - or are you saying that if you delete *anything* from the source, the problem goes away? If not, just keep removing things until the problem does go away. That will give you a clue or two about what might be causing it.  (Take a full back up first, of course).

-- 
Derek
(skype: derek.j.parnell)
Melbourne, Australia
"Down with mediocracy!"
24/02/2006 5:17:37 PM
February 24, 2006
Ant wrote:
> this is what I get from a debug session:
> 
> (gdb) stepi
> 0x0804e0f9      359                                             dd.foo();
> (gdb) stepi
> 0x0804e0fb      359                                             dd.foo();
> (gdb) stepi
> 0x080c8568 in _D3gdk6Window6Window4moveFiiZv ()
> 
> dd is in fact an instance of class Window in module gtk.Window.
> DMD got it right so far.
> 
> but why would the method void move(int,int) be called
> instead of the method void foo() ????????????????


It's calling method dd.foo() from inside method move(), I believe.


> I posted a similar problem about a year and a half ago just to be ignored.
> 
> so help me: how do I post this in the bugs group?
> 
> Ant
> 
> PS what happens is that the window I have on the screen is
> actually moved to somewhere else,
> it actually disappears from the screen.


Need a few more details: OS, DUIT version, DMD version ; how can we reproduce this? do we just download the version from svn?  What steps do we take to compile and discover the problem?  Can you step us through what leads to the error?

-JJR
February 24, 2006
In article <dtm5t9$30kf$1@digitaldaemon.com>, Ant says...
>
>this is what I get from a debug session:
>
>(gdb) stepi
>0x0804e0f9      359                                             dd.foo();
>(gdb) stepi
>0x0804e0fb      359                                             dd.foo();
>(gdb) stepi
>0x080c8568 in _D3gdk6Window6Window4moveFiiZv ()
>
>dd is in fact an instance of class Window in module gtk.Window. DMD got it right so far.
>
>but why would the method void move(int,int) be called
>instead of the method void foo() ????????????????
>
>I posted a similar problem about a year and a half ago just to be ignored.
>
>so help me: how do I post this in the bugs group?
>
>Ant
>

Thank you, Derek and John.
I'll review this and try to post more details.

Ant


February 25, 2006
John Reimer wrote:
> Ant wrote:
>> this is what I get from a debug session:
>>
>> (gdb) stepi
>> 0x0804e0f9      359                                             dd.foo();
>> (gdb) stepi
>> 0x0804e0fb      359                                             dd.foo();
>> (gdb) stepi
>> 0x080c8568 in _D3gdk6Window6Window4moveFiiZv ()
>>
>> dd is in fact an instance of class Window in module gtk.Window.
>> DMD got it right so far.
>>
>> but why would the method void move(int,int) be called
>> instead of the method void foo() ????????????????
> 
> 
> It's calling method dd.foo() from inside method move(), I believe.
> 
> 
>> I posted a similar problem about a year and a half ago just to be ignored.
>>
>> so help me: how do I post this in the bugs group?
>>
>> Ant
>>
>> PS what happens is that the window I have on the screen is
>> actually moved to somewhere else,
>> it actually disappears from the screen.
> 
> 
> Need a few more details: OS, DUIT version, DMD version ; how can we reproduce this? do we just download the version from svn?  What steps do we take to compile and discover the problem?  Can you step us through what leads to the error?
> 
> -JJR

get
http://svn.dsource.org/projects/dui/trunk/dyndui/DuitBUG.tar.gz
ad see the README* for compilation and more details...

I have no more ideas...

Ant

February 25, 2006
Ant wrote:

> get
> http://svn.dsource.org/projects/dui/trunk/dyndui/DuitBUG.tar.gz
> ad see the README* for compilation and more details...
> 
> I have no more ideas...
> 
> Ant
> 

Thanks, Ant.  I downloaded it this morning, but have been busy at work and such.  I'll try to test it when I get the chance.

-JJR
February 27, 2006
Ant wrote:
> this is what I get from a debug session:
> 
> (gdb) stepi
> 0x0804e0f9      359                                             dd.foo();
> (gdb) stepi
> 0x0804e0fb      359                                             dd.foo();
> (gdb) stepi
> 0x080c8568 in _D3gdk6Window6Window4moveFiiZv ()
> 
> dd is in fact an instance of class Window in module gtk.Window.
> DMD got it right so far.
> 
> but why would the method void move(int,int) be called
> instead of the method void foo() ????????????????
> 


Seems I found the problem with this.

moving the import declarations to the module level (from the class body)
seems to do the trick.

I originally had all imports a the module level but that created another
problem (don't remember what).

I'll move all import to module level and try to see if the original problem
can be solved.

Thank you all for your help, specially Lars Ivar and h3r3tic!

Ant

PS I asked Walter (about 2 year ago) if imports on the class body
should be used or were just a side effect - he completely ignore the question.
February 27, 2006
In article <dtu7f2$gst$1@digitaldaemon.com>, Ant says...

>PS I asked Walter (about 2 year ago) if imports on the class body
>should be used or were just a side effect - he completely ignore the question.


There have been several discussions concerning that practice since then, Ant (perhaps you missed them? :) ) Many of these discussions were somewhat heated because the name lookup rules seemed counter-intuitive.   If I recall correctly, Mango and the original DWT port ran into this issue too.

Walter responded something to the effect that imports were not designed to be placed in class bodies, so we were "on our own" if we decided to put them there.

Glad you were able to get this fixed, though!  Thanks also to Lars and Tom for helping out.

-JJR