示例#1
0
 WITH_UNICODE_STRING(env, pathname, path) {
     /*we estimate the max length of memory needed as
       "currentDir. length + pathname.length"
      */
     int len = wcslen(path);
     len += currentDirLength(path, len);
     if (len  > MAX_PATH_LENGTH - 1) {
         WCHAR *cp = (WCHAR*)malloc(len * sizeof(WCHAR));
         if (cp != NULL) {
             if (wcanonicalize(path, cp, len) >= 0) {
                 rv = (*env)->NewString(env, cp, wcslen(cp));
             }
             free(cp);
         }
     } else
     if (wcanonicalize(path, canonicalPath, MAX_PATH_LENGTH) >= 0) {
         rv = (*env)->NewString(env, canonicalPath, wcslen(canonicalPath));
     }
 } END_UNICODE_STRING(env, path);
 WITH_UNICODE_STRING(env, pathname, path) {
     if (wcanonicalize(path, canonicalPath, MAX_PATH_LENGTH) >= 0) {
         rv = (*env)->NewString(env, canonicalPath, wcslen(canonicalPath));
     }
 } END_UNICODE_STRING(env, path);