jdk/src/windows/native/sun/nio/fs/WindowsNativeDispatcher.c
changeset 3628 2768d95a0e7d
parent 3065 452aaa2899fc
child 5506 202f599c92aa
equal deleted inserted replaced
3627:d0ad40d5adab 3628:2768d95a0e7d
    46 /**
    46 /**
    47  * jfieldIDs
    47  * jfieldIDs
    48  */
    48  */
    49 static jfieldID findFirst_handle;
    49 static jfieldID findFirst_handle;
    50 static jfieldID findFirst_name;
    50 static jfieldID findFirst_name;
       
    51 static jfieldID findFirst_attributes;
    51 
    52 
    52 static jfieldID findStream_handle;
    53 static jfieldID findStream_handle;
    53 static jfieldID findStream_name;
    54 static jfieldID findStream_name;
    54 
    55 
    55 static jfieldID volumeInfo_fsName;
    56 static jfieldID volumeInfo_fsName;
   132     if (clazz == NULL) {
   133     if (clazz == NULL) {
   133         return;
   134         return;
   134     }
   135     }
   135     findFirst_handle = (*env)->GetFieldID(env, clazz, "handle", "J");
   136     findFirst_handle = (*env)->GetFieldID(env, clazz, "handle", "J");
   136     findFirst_name = (*env)->GetFieldID(env, clazz, "name", "Ljava/lang/String;");
   137     findFirst_name = (*env)->GetFieldID(env, clazz, "name", "Ljava/lang/String;");
       
   138     findFirst_attributes = (*env)->GetFieldID(env, clazz, "attributes", "I");
   137 
   139 
   138     clazz = (*env)->FindClass(env, "sun/nio/fs/WindowsNativeDispatcher$FirstStream");
   140     clazz = (*env)->FindClass(env, "sun/nio/fs/WindowsNativeDispatcher$FirstStream");
   139     if (clazz == NULL) {
   141     if (clazz == NULL) {
   140         return;
   142         return;
   141     }
   143     }
   369         jstring name = (*env)->NewString(env, data.cFileName, wcslen(data.cFileName));
   371         jstring name = (*env)->NewString(env, data.cFileName, wcslen(data.cFileName));
   370         if (name == NULL)
   372         if (name == NULL)
   371             return;
   373             return;
   372         (*env)->SetLongField(env, obj, findFirst_handle, ptr_to_jlong(handle));
   374         (*env)->SetLongField(env, obj, findFirst_handle, ptr_to_jlong(handle));
   373         (*env)->SetObjectField(env, obj, findFirst_name, name);
   375         (*env)->SetObjectField(env, obj, findFirst_name, name);
       
   376         (*env)->SetIntField(env, obj, findFirst_attributes, data.dwFileAttributes);
   374     } else {
   377     } else {
   375         throwWindowsException(env, GetLastError());
   378         throwWindowsException(env, GetLastError());
   376     }
   379     }
   377 }
   380 }
   378 
   381 
   385 
   388 
   386     HANDLE handle = FindFirstFileW(lpFileName, data);
   389     HANDLE handle = FindFirstFileW(lpFileName, data);
   387     if (handle == INVALID_HANDLE_VALUE) {
   390     if (handle == INVALID_HANDLE_VALUE) {
   388         throwWindowsException(env, GetLastError());
   391         throwWindowsException(env, GetLastError());
   389     }
   392     }
   390         return ptr_to_jlong(handle);
   393     return ptr_to_jlong(handle);
   391 }
   394 }
   392 
   395 
   393 JNIEXPORT jstring JNICALL
   396 JNIEXPORT jstring JNICALL
   394 Java_sun_nio_fs_WindowsNativeDispatcher_FindNextFile(JNIEnv* env, jclass this,
   397 Java_sun_nio_fs_WindowsNativeDispatcher_FindNextFile(JNIEnv* env, jclass this,
   395     jlong handle, jlong dataAddress)
   398     jlong handle, jlong dataAddress)