www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - method not reached

dmd 0.102, windows XP
(same oberved and reported for linux - can't find the post)

ok after all that bellow I just regrouped how the modules are compiled and 
the problem went away.
!!!DEFINITIVILY DMD PRODUCES BOGUS CODE ON SOME CIRCUMSTANCES!!!
the following is not for reading but to record how I compiled
before and after. maybe it will be usefull to try to fix this.

Ant

### winxp batch files
##############################################################
### before - produces bogues code on the Label widget ########
##############################################################
 echo off

del *.map *.lib *.exe *.bak

rem ################################
rem setup dmd and dm location ######
rem ################################

set dmd=\DD\dmd
set dm=\DD\dm

rem ################################
rem compile dui ####################
rem ################################



set dmdCOMM=%dmd%\bin\dmd -od..\obj -op -c -g -I.;\DD\dante\dool\src

cd src
rem goto few

goto start


:compile
%dmdCOMM% %*
if %ERRORLEVEL% GEQ 1 (
goto error
)
goto :EOF

:start
echo compiling dango
call :compile dango\Context.d dango\Layout.d dango\Font.d dango\TabArray.d
echo compiling ddi
call :compile ddi\KeySyms.d ddi\Bitmap.d ddi\Color.d ddi\Cursor.d ddi\Display.d
ddi\Drawable.d ddi\GC.d ddi\Pixbuf.d ddi\Pixmap.d ddi\Screen.d ddi\Value.d
ddi\Visual.d ddi\WindowG.d
echo compiling dglib
call :compile dglib\AQueue.d dglib\ErrorG.d dglib\File.d dglib\IOChannel.d
dglib\Plugin.d dglib\Spawn.d dglib\StringG.d dglib\ThreadG.d dglib\TimerG.d
echo compiling event
call :compile event\AdjustmentListener.d event\ButtonListener.d
event\CalendarListener.d event\CellListener.d event\CheckMenuItemListener.d
event\ColorSelectionListener.d event\ContainerListener.d
event\DUIObjectListener.d event\Dispatcher.d event\EditableListener.d
event\EntryListener.d event\Event.d event\EventHandler.d
event\HandleBoxListener.d event\IdleListener.d event\ItemListener.d
event\Listener.d event\MenuItemListener.d event\MenuShellListener.d
event\NotebookListener.d event\SelectionListener.d event\StatusbarListener.d
event\TextListener.d event\TimeoutListener.d event\ToggleButtonListener.d
event\ToolbarListener.d event\TreeModelListener.d event\TreeViewListener.d
event\WidgetListener.d event\WindowListener.d
echo compiling dui 1
call :compile dui\AccelGroup.d dui\AccelLabel.d dui\Adjustment.d dui\Alignment.d
dui\All.d dui\Arrow.d dui\AspectFrame.d
echo compiling dui 2
call :compile dui\Bin.d dui\Box.d dui\Button.d dui\ButtonBox.d
echo compiling dui 3
call :compile dui\Calendar.d dui\CellRenderer.d dui\CellRendererPixbuf.d
dui\CellRendererText.d dui\CellRendererToggle.d dui\CheckButton.d
dui\CheckMenuItem.d dui\Clipboard.d dui\ColorSelection.d
dui\ColorSelectionDialog.d dui\Combo.d dui\ComboBox.d dui\ComboBoxText.d
dui\ComboBoxTextEntry.d dui\Container.d dui\Curve.d
echo compiling dui 4
call :compile dui\DND.d dui\DUI.d dui\DUIObject.d dui\Dialog.d dui\DrawingArea.d
dui\Editable.d
echo compiling dui 5
call :compile dui\Entry.d dui\EventBox.d dui\FileChooserDialog.d
echo compiling dui 6
call :compile dui\FileSelection.d dui\Fixed.d dui\FontSelection.d
dui\FontSelectionDialog.d dui\Frame.d
echo compiling dui 7
call :compile dui\GammaCurve.d
echo compiling dui 8
call :compile dui\HBox.d dui\HButtonBox.d dui\HPaned.d dui\HRuler.d dui\HScale.d
dui\HScrollbar.d dui\HSeparator.d dui\HandleBox.d
echo compiling dui 9
call :compile dui\Image.d dui\ImageMenuItem.d dui\InputDialog.d dui\Invisible.d
dui\Item.d dui\ItemFactory.d
echo compiling dui 10
call :compile dui\Label.d dui\Layout.d dui\List.d dui\ListG.d dui\ListItem.d
dui\ListStore.d
echo compiling dui 11
call :compile dui\MainWindow.d dui\Menu.d dui\MenuBar.d dui\MenuItem.d
dui\MenuShell.d dui\MessageDialog.d dui\Misc.d
echo compiling dui 12
call :compile dui\Notebook
echo compiling dui 13
call :compile dui\OGTK.d dui\ObjectG.d dui\OptionMenu.d
echo compiling dui 14
call :compile dui\Paned.d dui\Plug.d dui\Preview.d dui\ProgressBar.d
echo compiling dui 15
call :compile dui\RadioButton.d dui\RadioMenuItem.d dui\Range.d dui\Ruler.d
echo compiling dui 16
call :compile dui\SListG.d dui\Scale.d dui\Scrollbar.d dui\ScrolledWindow.d
dui\Selection.d dui\Separator.d dui\SeparatorMenuItem.d dui\SizeGroup.d
dui\Socket.d dui\SpinButton.d dui\Statusbar.d
echo compiling dui 17
call :compile dui\Table.d dui\TearoffMenuItem.d dui\TextBuffer.d
dui\TextChildAnchor.d dui\TextIter.d dui\TextMark.d dui\TextTag.d
dui\TextTagTable.d dui\TextView.d dui\ToggleButton.d dui\Toolbar.d
dui\Tooltips.d dui\Tree.d dui\TreeItem.d dui\TreeIter.d dui\TreeModel.d
dui\TreePath.d dui\TreeRowReference.d dui\TreeSelection.d dui\TreeStore.d
dui\TreeView.d dui\TreeViewColumn.d
echo compiling dui 18
call :compile dui\Utils.d
echo compiling dui 19
call :compile dui\VBox.d dui\VButtonBox.d dui\VPaned.d dui\VRuler.d dui\VScale.d
dui\VScrollbar.d dui\VSeparator.d dui\Viewport.d
echo compiling dui 20
call :compile dui\Widget.d dui\Window.d dui\WindowGroup.d
echo compiling dui 21
call :compile dui\InputStringDialog.d 

goto lib


:few

echo few 1
call :compile dui\Widget.d dui\Window.d dui\Label.d dui\Misc.d 


:lib

cd ..

set objs=obj\dango\Context.obj obj\dango\Layout.obj obj\dango\Font.obj
obj\dango\TabArray.obj
set objs=%objs% obj\ddi\KeySyms.obj obj\ddi\Bitmap.obj obj\ddi\Color.obj
obj\ddi\Cursor.obj obj\ddi\Display.obj obj\ddi\Drawable.obj obj\ddi\GC.obj
obj\ddi\Pixbuf.obj obj\ddi\Pixmap.obj obj\ddi\Screen.obj obj\ddi\Value.obj
obj\ddi\Visual.obj obj\ddi\WindowG.obj
set objs=%objs% obj\dglib\AQueue.obj obj\dglib\ErrorG.obj obj\dglib\File.obj
obj\dglib\IOChannel.obj obj\dglib\Plugin.obj obj\dglib\Spawn.obj
obj\dglib\StringG.obj obj\dglib\ThreadG.obj obj\dglib\TimerG.obj
set objs=%objs% obj\event\AdjustmentListener.obj obj\event\ButtonListener.obj
obj\event\CalendarListener.obj obj\event\CellListener.obj
obj\event\CheckMenuItemListener.obj obj\event\ColorSelectionListener.obj
obj\event\ContainerListener.obj obj\event\DUIObjectListener.obj
obj\event\Dispatcher.obj obj\event\EditableListener.obj
obj\event\EntryListener.obj obj\event\Event.obj obj\event\EventHandler.obj
obj\event\HandleBoxListener.obj obj\event\IdleListener.obj
obj\event\ItemListener.obj obj\event\Listener.obj obj\event\MenuItemListener.obj
obj\event\MenuShellListener.obj obj\event\NotebookListener.obj
obj\event\SelectionListener.obj obj\event\StatusbarListener.obj
obj\event\TextListener.obj obj\event\TimeoutListener.obj
obj\event\ToggleButtonListener.obj obj\event\ToolbarListener.obj
obj\event\TreeModelListener.obj obj\event\TreeViewListener.obj
obj\event\WidgetListener.obj obj\event\WindowListener.obj
set objs=%objs% obj\dui\AccelGroup.obj obj\dui\AccelLabel.obj
obj\dui\Adjustment.obj obj\dui\Alignment.obj obj\dui\All.obj obj\dui\Arrow.obj
obj\dui\AspectFrame.obj
set objs=%objs% obj\dui\Bin.obj obj\dui\Box.obj obj\dui\Button.obj
obj\dui\ButtonBox.obj
set objs=%objs% obj\dui\Calendar.obj obj\dui\CellRenderer.obj
obj\dui\CellRendererPixbuf.obj obj\dui\CellRendererText.obj
obj\dui\CellRendererToggle.obj obj\dui\CheckButton.obj obj\dui\CheckMenuItem.obj
obj\dui\Clipboard.obj obj\dui\ColorSelection.obj
obj\dui\ColorSelectionDialog.obj obj\dui\Combo.obj obj\dui\ComboBox.obj
obj\dui\ComboBoxText.obj obj\dui\ComboBoxTextEntry.obj obj\dui\Container.obj
obj\dui\Curve.obj
set objs=%objs% obj\dui\DND.obj obj\dui\DUI.obj obj\dui\DUIObject.obj
obj\dui\Dialog.obj obj\dui\DrawingArea.obj obj\dui\Editable.obj
set objs=%objs% obj\dui\Entry.obj obj\dui\EventBox.obj
obj\dui\FileChooserDialog.obj
set objs=%objs% obj\dui\FileSelection.obj obj\dui\Fixed.obj
obj\dui\FontSelection.obj obj\dui\FontSelectionDialog.obj obj\dui\Frame.obj
set objs=%objs% obj\dui\GammaCurve.obj
set objs=%objs% obj\dui\HBox.obj obj\dui\HButtonBox.obj obj\dui\HPaned.obj
obj\dui\HRuler.obj obj\dui\HScale.obj obj\dui\HScrollbar.obj
obj\dui\HSeparator.obj obj\dui\HandleBox.obj
set objs=%objs% obj\dui\Image.obj obj\dui\ImageMenuItem.obj
obj\dui\InputDialog.obj obj\dui\Invisible.obj obj\dui\Item.obj
obj\dui\ItemFactory.obj
set objs=%objs% obj\dui\Label.obj obj\dui\Layout.obj obj\dui\List.obj
obj\dui\ListG.obj obj\dui\ListItem.obj obj\dui\ListStore.obj
set objs=%objs% obj\dui\MainWindow.obj obj\dui\Menu.obj obj\dui\MenuBar.obj
obj\dui\MenuItem.obj obj\dui\MenuShell.obj obj\dui\MessageDialog.obj
obj\dui\Misc.obj
set objs=%objs% obj\dui\Notebook
set objs=%objs% obj\dui\OGTK.obj obj\dui\ObjectG.obj obj\dui\OptionMenu.obj
set objs=%objs% obj\dui\Paned.obj obj\dui\Plug.obj obj\dui\Preview.obj
obj\dui\ProgressBar.obj
set objs=%objs% obj\dui\RadioButton.obj obj\dui\RadioMenuItem.obj
obj\dui\Range.obj obj\dui\Ruler.obj
set objs=%objs% obj\dui\SListG.obj obj\dui\Scale.obj obj\dui\Scrollbar.obj
obj\dui\ScrolledWindow.obj obj\dui\Selection.obj obj\dui\Separator.obj
obj\dui\SeparatorMenuItem.obj obj\dui\SizeGroup.obj obj\dui\Socket.obj
obj\dui\SpinButton.obj obj\dui\Statusbar.obj
set objs=%objs% obj\dui\Table.obj obj\dui\TearoffMenuItem.obj
obj\dui\TextBuffer.obj obj\dui\TextChildAnchor.obj obj\dui\TextIter.obj
obj\dui\TextMark.obj obj\dui\TextTag.obj obj\dui\TextTagTable.obj
obj\dui\TextView.obj obj\dui\ToggleButton.obj obj\dui\Toolbar.obj
obj\dui\Tooltips.obj obj\dui\Tree.obj obj\dui\TreeItem.obj obj\dui\TreeIter.obj
obj\dui\TreeModel.obj obj\dui\TreePath.obj obj\dui\TreeRowReference.obj
obj\dui\TreeSelection.obj obj\dui\TreeStore.obj obj\dui\TreeView.obj
obj\dui\TreeViewColumn.obj
set objs=%objs% obj\dui\Utils.obj
set objs=%objs% obj\dui\VBox.obj obj\dui\VButtonBox.obj obj\dui\VPaned.obj
obj\dui\VRuler.obj obj\dui\VScale.obj obj\dui\VScrollbar.obj
obj\dui\VSeparator.obj obj\dui\Viewport.obj
set objs=%objs% obj\dui\Widget.obj obj\dui\Window.obj obj\dui\WindowGroup.obj
set objs=%objs% obj\dui\InputStringDialog.obj 

:builLib

 echo on

%dm%\bin\lib.exe -p128 -c dui.lib %objs%

 echo off

goto end

:error

echo error: %ERRORLEVEL%

:end


##############################################################
### after - no problems found ################################
##############################################################
 echo off

del *.map *.lib *.exe *.bak

rem ################################
rem setup dmd and dm location ######
rem ################################

set dmd=\DD\dmd
set dm=\DD\dm

rem ################################
rem compile dui ####################
rem ################################



set dmdCOMM=%dmd%\bin\dmd -od..\obj -op -c -g -I.;\DD\dante\dool\src

cd src
rem goto few

goto start


:compile
%dmdCOMM% %*
if %ERRORLEVEL% GEQ 1 (
goto error
)
goto :EOF

:start
echo compiling dango
call :compile dango\Context.d dango\Layout.d dango\Font.d dango\TabArray.d
echo compiling ddi
call :compile ddi\KeySyms.d ddi\Bitmap.d ddi\Color.d ddi\Cursor.d ddi\Display.d
ddi\Drawable.d ddi\GC.d ddi\Pixbuf.d ddi\Pixmap.d ddi\Screen.d ddi\Value.d
ddi\Visual.d ddi\WindowG.d
echo compiling dglib
call :compile dglib\AQueue.d dglib\ErrorG.d dglib\File.d dglib\IOChannel.d
dglib\Plugin.d dglib\Spawn.d dglib\StringG.d dglib\ThreadG.d dglib\TimerG.d
echo compiling event
call :compile event\AdjustmentListener.d event\ButtonListener.d
event\CalendarListener.d event\CellListener.d event\CheckMenuItemListener.d
event\ColorSelectionListener.d event\ContainerListener.d
event\DUIObjectListener.d event\Dispatcher.d event\EditableListener.d
event\EntryListener.d event\Event.d event\EventHandler.d
event\HandleBoxListener.d event\IdleListener.d event\ItemListener.d
event\Listener.d event\MenuItemListener.d event\MenuShellListener.d
event\NotebookListener.d event\SelectionListener.d event\StatusbarListener.d
event\TextListener.d event\TimeoutListener.d event\ToggleButtonListener.d
event\ToolbarListener.d event\TreeModelListener.d event\TreeViewListener.d
event\WidgetListener.d event\WindowListener.d
echo compiling dui 1
call :compile dui\AccelGroup.d dui\AccelLabel.d dui\Adjustment.d dui\Alignment.d
dui\All.d dui\Arrow.d dui\AspectFrame.d
echo compiling dui 2
call :compile dui\Bin.d dui\Box.d dui\Button.d dui\ButtonBox.d
echo compiling dui 3
call :compile dui\Calendar.d dui\CellRenderer.d dui\CellRendererPixbuf.d
dui\CellRendererText.d dui\CellRendererToggle.d dui\CheckButton.d
dui\CheckMenuItem.d dui\Clipboard.d dui\ColorSelection.d
dui\ColorSelectionDialog.d dui\Combo.d dui\ComboBox.d dui\ComboBoxText.d
dui\ComboBoxTextEntry.d dui\Container.d dui\Curve.d
echo compiling dui 4
call :compile dui\DND.d dui\DUI.d dui\DUIObject.d dui\Dialog.d dui\DrawingArea.d
dui\Editable.d
echo compiling dui 5
call :compile dui\Entry.d dui\EventBox.d dui\FileChooserDialog.d
echo compiling dui 6
call :compile dui\FileSelection.d dui\Fixed.d dui\FontSelection.d
dui\FontSelectionDialog.d dui\Frame.d
echo compiling dui 7
call :compile dui\GammaCurve.d
echo compiling dui 8
call :compile dui\HBox.d dui\HButtonBox.d dui\HPaned.d dui\HRuler.d dui\HScale.d
dui\HScrollbar.d dui\HSeparator.d dui\HandleBox.d
echo compiling dui 9
call :compile dui\Image.d dui\ImageMenuItem.d dui\InputDialog.d dui\Invisible.d
dui\Item.d dui\ItemFactory.d dui\Label.d dui\Layout.d dui\List.d dui\ListG.d
dui\ListItem.d dui\ListStore.d
echo compiling dui 11
call :compile dui\MainWindow.d dui\Menu.d dui\MenuBar.d dui\MenuItem.d
dui\MenuShell.d dui\MessageDialog.d dui\Misc.d
echo compiling dui 12
call :compile dui\Notebook
echo compiling dui 13
call :compile dui\OGTK.d dui\ObjectG.d dui\OptionMenu.d
echo compiling dui 14
call :compile dui\Paned.d dui\Plug.d dui\Preview.d dui\ProgressBar.d
echo compiling dui 15
call :compile dui\RadioButton.d dui\RadioMenuItem.d dui\Range.d dui\Ruler.d
echo compiling dui 16
call :compile dui\SListG.d dui\Scale.d dui\Scrollbar.d dui\ScrolledWindow.d
dui\Selection.d dui\Separator.d dui\SeparatorMenuItem.d dui\SizeGroup.d
dui\Socket.d dui\SpinButton.d dui\Statusbar.d
echo compiling dui 17
call :compile dui\Table.d dui\TearoffMenuItem.d dui\TextBuffer.d
dui\TextChildAnchor.d dui\TextIter.d dui\TextMark.d dui\TextTag.d
dui\TextTagTable.d dui\TextView.d dui\ToggleButton.d dui\Toolbar.d
dui\Tooltips.d dui\Tree.d dui\TreeItem.d dui\TreeIter.d dui\TreeModel.d
dui\TreePath.d dui\TreeRowReference.d dui\TreeSelection.d dui\TreeStore.d
dui\TreeView.d dui\TreeViewColumn.d
echo compiling dui 18
call :compile dui\Utils.d
echo compiling dui 19
call :compile dui\VBox.d dui\VButtonBox.d dui\VPaned.d dui\VRuler.d dui\VScale.d
dui\VScrollbar.d dui\VSeparator.d dui\Viewport.d
echo compiling dui 20
call :compile dui\Widget.d dui\Window.d dui\WindowGroup.d
echo compiling dui 21
call :compile dui\InputStringDialog.d 

goto lib


:few

echo few 1
call :compile dui\Widget.d dui\Window.d dui\Label.d dui\Misc.d 


:lib

cd ..

set objs=obj\dango\Context.obj obj\dango\Layout.obj obj\dango\Font.obj
obj\dango\TabArray.obj
set objs=%objs% obj\ddi\KeySyms.obj obj\ddi\Bitmap.obj obj\ddi\Color.obj
obj\ddi\Cursor.obj obj\ddi\Display.obj obj\ddi\Drawable.obj obj\ddi\GC.obj
obj\ddi\Pixbuf.obj obj\ddi\Pixmap.obj obj\ddi\Screen.obj obj\ddi\Value.obj
obj\ddi\Visual.obj obj\ddi\WindowG.obj
set objs=%objs% obj\dglib\AQueue.obj obj\dglib\ErrorG.obj obj\dglib\File.obj
obj\dglib\IOChannel.obj obj\dglib\Plugin.obj obj\dglib\Spawn.obj
obj\dglib\StringG.obj obj\dglib\ThreadG.obj obj\dglib\TimerG.obj
set objs=%objs% obj\event\AdjustmentListener.obj obj\event\ButtonListener.obj
obj\event\CalendarListener.obj obj\event\CellListener.obj
obj\event\CheckMenuItemListener.obj obj\event\ColorSelectionListener.obj
obj\event\ContainerListener.obj obj\event\DUIObjectListener.obj
obj\event\Dispatcher.obj obj\event\EditableListener.obj
obj\event\EntryListener.obj obj\event\Event.obj obj\event\EventHandler.obj
obj\event\HandleBoxListener.obj obj\event\IdleListener.obj
obj\event\ItemListener.obj obj\event\Listener.obj obj\event\MenuItemListener.obj
obj\event\MenuShellListener.obj obj\event\NotebookListener.obj
obj\event\SelectionListener.obj obj\event\StatusbarListener.obj
obj\event\TextListener.obj obj\event\TimeoutListener.obj
obj\event\ToggleButtonListener.obj obj\event\ToolbarListener.obj
obj\event\TreeModelListener.obj obj\event\TreeViewListener.obj
obj\event\WidgetListener.obj obj\event\WindowListener.obj
set objs=%objs% obj\dui\AccelGroup.obj obj\dui\AccelLabel.obj
obj\dui\Adjustment.obj obj\dui\Alignment.obj obj\dui\All.obj obj\dui\Arrow.obj
obj\dui\AspectFrame.obj
set objs=%objs% obj\dui\Bin.obj obj\dui\Box.obj obj\dui\Button.obj
obj\dui\ButtonBox.obj
set objs=%objs% obj\dui\Calendar.obj obj\dui\CellRenderer.obj
obj\dui\CellRendererPixbuf.obj obj\dui\CellRendererText.obj
obj\dui\CellRendererToggle.obj obj\dui\CheckButton.obj obj\dui\CheckMenuItem.obj
obj\dui\Clipboard.obj obj\dui\ColorSelection.obj
obj\dui\ColorSelectionDialog.obj obj\dui\Combo.obj obj\dui\ComboBox.obj
obj\dui\ComboBoxText.obj obj\dui\ComboBoxTextEntry.obj obj\dui\Container.obj
obj\dui\Curve.obj
set objs=%objs% obj\dui\DND.obj obj\dui\DUI.obj obj\dui\DUIObject.obj
obj\dui\Dialog.obj obj\dui\DrawingArea.obj obj\dui\Editable.obj
set objs=%objs% obj\dui\Entry.obj obj\dui\EventBox.obj
obj\dui\FileChooserDialog.obj
set objs=%objs% obj\dui\FileSelection.obj obj\dui\Fixed.obj
obj\dui\FontSelection.obj obj\dui\FontSelectionDialog.obj obj\dui\Frame.obj
set objs=%objs% obj\dui\GammaCurve.obj
set objs=%objs% obj\dui\HBox.obj obj\dui\HButtonBox.obj obj\dui\HPaned.obj
obj\dui\HRuler.obj obj\dui\HScale.obj obj\dui\HScrollbar.obj
obj\dui\HSeparator.obj obj\dui\HandleBox.obj
set objs=%objs% obj\dui\Image.obj obj\dui\ImageMenuItem.obj
obj\dui\InputDialog.obj obj\dui\Invisible.obj obj\dui\Item.obj
obj\dui\ItemFactory.obj
set objs=%objs% obj\dui\Label.obj obj\dui\Layout.obj obj\dui\List.obj
obj\dui\ListG.obj obj\dui\ListItem.obj obj\dui\ListStore.obj
set objs=%objs% obj\dui\MainWindow.obj obj\dui\Menu.obj obj\dui\MenuBar.obj
obj\dui\MenuItem.obj obj\dui\MenuShell.obj obj\dui\MessageDialog.obj
obj\dui\Misc.obj
set objs=%objs% obj\dui\Notebook
set objs=%objs% obj\dui\OGTK.obj obj\dui\ObjectG.obj obj\dui\OptionMenu.obj
set objs=%objs% obj\dui\Paned.obj obj\dui\Plug.obj obj\dui\Preview.obj
obj\dui\ProgressBar.obj
set objs=%objs% obj\dui\RadioButton.obj obj\dui\RadioMenuItem.obj
obj\dui\Range.obj obj\dui\Ruler.obj
set objs=%objs% obj\dui\SListG.obj obj\dui\Scale.obj obj\dui\Scrollbar.obj
obj\dui\ScrolledWindow.obj obj\dui\Selection.obj obj\dui\Separator.obj
obj\dui\SeparatorMenuItem.obj obj\dui\SizeGroup.obj obj\dui\Socket.obj
obj\dui\SpinButton.obj obj\dui\Statusbar.obj
set objs=%objs% obj\dui\Table.obj obj\dui\TearoffMenuItem.obj
obj\dui\TextBuffer.obj obj\dui\TextChildAnchor.obj obj\dui\TextIter.obj
obj\dui\TextMark.obj obj\dui\TextTag.obj obj\dui\TextTagTable.obj
obj\dui\TextView.obj obj\dui\ToggleButton.obj obj\dui\Toolbar.obj
obj\dui\Tooltips.obj obj\dui\Tree.obj obj\dui\TreeItem.obj obj\dui\TreeIter.obj
obj\dui\TreeModel.obj obj\dui\TreePath.obj obj\dui\TreeRowReference.obj
obj\dui\TreeSelection.obj obj\dui\TreeStore.obj obj\dui\TreeView.obj
obj\dui\TreeViewColumn.obj
set objs=%objs% obj\dui\Utils.obj
set objs=%objs% obj\dui\VBox.obj obj\dui\VButtonBox.obj obj\dui\VPaned.obj
obj\dui\VRuler.obj obj\dui\VScale.obj obj\dui\VScrollbar.obj
obj\dui\VSeparator.obj obj\dui\Viewport.obj
set objs=%objs% obj\dui\Widget.obj obj\dui\Window.obj obj\dui\WindowGroup.obj
set objs=%objs% obj\dui\InputStringDialog.obj 

:builLib

 echo on

%dm%\bin\lib.exe -p128 -c dui.lib %objs%

 echo off

goto end

:error

echo error: %ERRORLEVEL%

:end


##############################################################
### original message #########################################
##############################################################

dmd 0.102, windows XP

this code from DUI.Widget is executed for every DUI widget:
this(GtkObject* gtkObject)
{
printf("Widget.this 1 GtkObject %X %X\n", gtkObject, *gtkObject);
super(gtkObject);
printf("Widget.this 2 GtkObject %X %X\n", gtkObject, *gtkObject);
this.gtkWidget = cast(GtkWidget*)gtkObject;
printf("Widget.this 3 GtkObject %X %X\n", gtkObject, *gtkObject);
printf("Widget.this getAutoShow() %d\n", getAutoShow());
printf("Widget.this DUI.dui().autoShow() %d\n",DUI.dui().autoShow() );

if ( getAutoShow() && (DUI.dui().autoShow() == 1))
{
printf("Widget.this 4 GtkObject %X %X\n", gtkObject, *gtkObject);
show();
printf("Widget.this 5 GtkObject %X %X\n", gtkObject, *gtkObject);
}
printf("Widget.this 6 GtkObject %X %X\n", gtkObject, *gtkObject);
}

bit getAutoShow()
{
printf("Window.getAutoShow() 1\n");
printf("getAutoShow == %d\n",getData("_AutoShow\0"));
printf("Window.getAutoShow() 2\n");
return getData(new String("_AutoShow")) === null;
}

and produces the (few last lines):
### new widget non Label
Widget.this cast(GtkObject*)gtkWidget F975F0
Widget.this 1 GtkObject F975F0 F95BA0
Widget.this 2 GtkObject F975F0 F95BA0
Widget.this 3 GtkObject F975F0 F95BA0 ### before getAutoshow()
Widget.getAutoShow() 1                ### autoShow is true
getAutoShow == 0
Widget.getAutoShow() 2
Widget.this getAutoShow() 1
Widget.this DUI.dui().autoShow() 1
Widget.getAutoShow() 1
getAutoShow == 0
Widget.getAutoShow() 2
Widget.this 4 GtkObject F975F0 F95BA0
Widget.this 5 GtkObject F975F0 F95BA0
Widget.this 6 GtkObject F975F0 F95BA0
Widget.this F975F0 F95BA0
### Label
dui.Label.this 1 str = phobos
Label.this F9AAA8 F87568
Misc.this F9AAA8 F87568
Widget.this(GtkWidget)
Widget.this F9AAA8 F87568
Widget.this cast(GtkObject*)gtkWidget F9AAA8
Widget.this 1 GtkObject F9AAA8 F87568
Widget.this 2 GtkObject F9AAA8 F87568
Widget.this 3 GtkObject F9AAA8 F87568 ### before getAutoShow()
Error: Access Violation ### ???????????????

why does it never reach getAutoShow ?

I say this is the same problem I reported for linux
but in that case I had the parcial information from gdb.
I'm conviced the compiler generates code that doesn't
call the right address for the function.
(probably I can't find the post reference....give up.)

the widget hirarchy is:
Widget
Misc
Label

if I create a method getAutoShow on Misc or Label
the compiler issues an error saying it doesn't override any.

Ant
Oct 14 2004