Memory errors
PhilE
theotherphil at hotmail.com
Sun Mar 16 12:50:53 PDT 2014
Ah, I need to dispose of the image before disposing of the
display.
On Sunday, 16 March 2014 at 19:33:09 UTC, PhilE wrote:
> When using both simpleimage and DWT my program crashes with
> "core.exception.InvalidMemoryOperationError" after I show an
> image in a GUI window and then close the window. I'm presumably
> misunderstanding something about how the windows deal with
> memory deallocation, but this happens even when copying
> tutorial examples.
>
> e.g.
>
> module main;
>
> import org.eclipse.swt.SWT;
> import org.eclipse.swt.widgets.Display;
> import org.eclipse.swt.widgets.Label;
> import org.eclipse.swt.widgets.Shell;
> import org.eclipse.swt.graphics.all;
>
> void main ()
> {
> auto display = new Display;
> auto shell = new Shell;
>
> shell.setText("Title");
>
> Label label = new Label (shell, SWT.BORDER);
> label.setBounds(shell.getClientArea());
>
> Image image = new Image(display, "C:/dev/data/tree.png");
> label.setImage(image);
>
> shell.pack();
> shell.open();
>
> while (!shell.isDisposed)
> if (!display.readAndDispatch())
> display.sleep();
>
> display.dispose();
> }
>
> This successfully creates the display and shows an image, but
> when I close the window the memory error exception is thrown.
> If I run the same code without creating the image then there's
> no errors. If I create the image without setting it on the
> label I still get the error. Any ideas?
More information about the Digitalmars-d-learn
mailing list