diff options
Diffstat (limited to 'subversion/bindings/javahl/native/ListCallback.cpp')
-rw-r--r-- | subversion/bindings/javahl/native/ListCallback.cpp | 60 |
1 files changed, 5 insertions, 55 deletions
diff --git a/subversion/bindings/javahl/native/ListCallback.cpp b/subversion/bindings/javahl/native/ListCallback.cpp index 9759ff6..1cd089d 100644 --- a/subversion/bindings/javahl/native/ListCallback.cpp +++ b/subversion/bindings/javahl/native/ListCallback.cpp @@ -87,13 +87,13 @@ ListCallback::doList(const char *path, static jmethodID mid = 0; if (mid == 0) { - jclass clazz = env->FindClass(JAVA_PACKAGE"/callback/ListCallback"); + jclass clazz = env->FindClass(JAVAHL_CLASS("/callback/ListCallback")); if (JNIUtil::isJavaExceptionThrown()) POP_AND_RETURN(SVN_NO_ERROR); mid = env->GetMethodID(clazz, "doEntry", - "(L"JAVA_PACKAGE"/types/DirEntry;" - "L"JAVA_PACKAGE"/types/Lock;)V"); + "(" JAVAHL_ARG("/types/DirEntry;") + JAVAHL_ARG("/types/Lock;") ")V"); if (JNIUtil::isJavaExceptionThrown() || mid == 0) POP_AND_RETURN(SVN_NO_ERROR); } @@ -113,10 +113,8 @@ ListCallback::doList(const char *path, // call the Java method env->CallVoidMethod(m_callback, mid, jdirentry, jlock); - // No need to check for exception here, because we'll just return anyway - env->PopLocalFrame(NULL); - return SVN_NO_ERROR; + POP_AND_RETURN_EXCEPTION_AS_SVNERROR(); } /** @@ -126,53 +124,5 @@ jobject ListCallback::createJavaDirEntry(const char *path, const char *absPath, const svn_dirent_t *dirent) { - JNIEnv *env = JNIUtil::getEnv(); - - // Create a local frame for our references - env->PushLocalFrame(LOCAL_FRAME_SIZE); - if (JNIUtil::isJavaExceptionThrown()) - return SVN_NO_ERROR; - - jclass clazz = env->FindClass(JAVA_PACKAGE"/types/DirEntry"); - if (JNIUtil::isJavaExceptionThrown()) - POP_AND_RETURN_NULL; - - static jmethodID mid = 0; - if (mid == 0) - { - mid = env->GetMethodID(clazz, "<init>", - "(Ljava/lang/String;Ljava/lang/String;" - "L"JAVA_PACKAGE"/types/NodeKind;" - "JZJJLjava/lang/String;)V"); - if (JNIUtil::isJavaExceptionThrown()) - POP_AND_RETURN_NULL; - } - - jstring jPath = JNIUtil::makeJString(path); - if (JNIUtil::isJavaExceptionThrown()) - POP_AND_RETURN_NULL; - - jstring jAbsPath = JNIUtil::makeJString(absPath); - if (JNIUtil::isJavaExceptionThrown()) - POP_AND_RETURN_NULL; - - jobject jNodeKind = EnumMapper::mapNodeKind(dirent->kind); - if (JNIUtil::isJavaExceptionThrown()) - POP_AND_RETURN_NULL; - - jlong jSize = dirent->size; - jboolean jHasProps = (dirent->has_props? JNI_TRUE : JNI_FALSE); - jlong jLastChangedRevision = dirent->created_rev; - jlong jLastChanged = dirent->time; - jstring jLastAuthor = JNIUtil::makeJString(dirent->last_author); - if (JNIUtil::isJavaExceptionThrown()) - POP_AND_RETURN_NULL; - - jobject ret = env->NewObject(clazz, mid, jPath, jAbsPath, jNodeKind, - jSize, jHasProps, jLastChangedRevision, - jLastChanged, jLastAuthor); - if (JNIUtil::isJavaExceptionThrown()) - POP_AND_RETURN_NULL; - - return env->PopLocalFrame(ret); + return CreateJ::DirEntry(path, absPath, dirent); } |