javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/javax/microedition/lcdui/CanvasGraphicsItemPainter.java
--- a/javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/javax/microedition/lcdui/CanvasGraphicsItemPainter.java Wed Jun 09 09:34:07 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/javax/microedition/lcdui/CanvasGraphicsItemPainter.java Mon Jun 21 15:32:50 2010 +0300
@@ -20,7 +20,7 @@
import com.nokia.mj.impl.rt.legacy.NativeError;
import com.nokia.mid.ui.CanvasGraphicsItem;
-
+import com.nokia.mj.impl.rt.support.Finalizer;
class CanvasGraphicsItemPainter
extends com.nokia.mid.ui.CanvasGraphicsItemPainter
@@ -34,6 +34,9 @@
// Graphics
private Graphics iGraphics;
+ //Object finalizer
+ private Finalizer mFinalizer;
+
//
// Repainting
//
@@ -64,6 +67,14 @@
}
iGraphics = null;
+
+ mFinalizer = new Finalizer()
+ {
+ public void finalizeImpl()
+ {
+ registeredFinalize();
+ }
+ };
}
/**
@@ -245,8 +256,34 @@
}
}
+ /*
+ * 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(iToolkit.getHandle(), iHandle);
+ iHandle = 0;
+ }
+ }
+ }
+
// Native methods
+ /*
+ * Disposes the native side peer object.
+ *
+ * @param aToolkitHandle A handle to the LCDUI toolkit.
+ *
+ * @param aNativePeerHandle A handle to the native side peer object.
+ */
+ private native void _dispose(int aToolkitHandle, int aNativePeerHandle);
+
private native int _createNativePeer(
int aToolkit,
int aWidth,