diff -r e0d6e9bd3ca7 -r bf7ee68962da javaextensions/location/landmarks/src/landmark.cpp --- a/javaextensions/location/landmarks/src/landmark.cpp Tue Jul 06 14:10:26 2010 +0300 +++ b/javaextensions/location/landmarks/src/landmark.cpp Wed Aug 18 09:43:15 2010 +0300 @@ -457,6 +457,11 @@ return error; } +LOCAL_C void dispose(CBase* aLandmark) +{ + delete aLandmark; +} + /* * Class: javax_microedition_location_Landmark * Method: _dispose @@ -466,14 +471,15 @@ JNICALL Java_javax_microedition_location_Landmark__1dispose( JNIEnv* /*aJniEnv*/, jobject /*aPeer*/, - jint /*aEventSourceHandle*/, + jint aEventSourceHandle, jint aLandmarkHandle) { JELOG2(EJavaLocation); - + LocationFunctionServer* eventSource = + reinterpret_cast< LocationFunctionServer*>(aEventSourceHandle); + CBase* object = reinterpret_cast< CBase*>(aLandmarkHandle); - - delete object; + eventSource->ExecuteTrap(dispose,object); } // End of file