javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/CanvasGraphicsItem.java
--- a/javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/CanvasGraphicsItem.java Wed Jun 09 09:34:07 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/CanvasGraphicsItem.java Mon Jun 21 15:32:50 2010 +0300
@@ -28,6 +28,8 @@
import com.nokia.mj.impl.rt.legacy.NativeError;
import com.nokia.mj.impl.rt.legacy.ToolkitInvoker;
+import com.nokia.mj.impl.rt.support.Finalizer;
+
/**
* <P>
* A <code>CanvasGraphicsItem</code> is a drawable component that is used with a
@@ -86,6 +88,9 @@
// LCDUI Toolkit object.
Object iToolkit;
+ //Object finalizer
+ private Finalizer mFinalizer;
+
private com.nokia.mid.ui.CanvasGraphicsItemPainter iItemPainter;
/**
@@ -149,6 +154,14 @@
// Construction was successful. Store handle and register for
// finalization.
iHandle = handle;
+
+ mFinalizer = new Finalizer()
+ {
+ public void finalizeImpl()
+ {
+ registeredFinalize();
+ }
+ };
}
/**
@@ -460,6 +473,23 @@
iItemPainter.Repaint(0, 0, getWidth(), getHeight());
}
+ /*
+ * Disposes the Landmark native peer object, if the handles are valid.
+ * Invalid (negative) handles indicate that their creation failed in the
+ * first place.
+ */
+ final void registeredFinalize()
+ {
+ synchronized (iToolkit)
+ {
+ if (iHandle > 0)
+ {
+ _dispose(getToolkitHandle(), iHandle);
+ iHandle = 0;
+ }
+ }
+ }
+
void Repaint(Graphics aGraphics)
{
paint(aGraphics);