October 15, 2004 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 |
Copyright © 1999-2021 by the D Language Foundation