35
36 extern char*
37 getUTF(JNIEnv *env, jstring str, char* localBuf, int bufSize);
38
39
40 JNIEXPORT jboolean JNICALL
41 Java_sun_misc_URLClassPath_knownToNotExist0(JNIEnv *env, jclass cls, jobject loader,
42 jstring classname)
43 {
44 char *clname;
45 jboolean result = JNI_FALSE;
46 char buf[128];
47
48 if (classname == NULL) {
49 JNU_ThrowNullPointerException(env, NULL);
50 return result;
51 }
52
53 clname = getUTF(env, classname, buf, sizeof(buf));
54 if (clname == NULL) {
55 JNU_ThrowOutOfMemoryError(env, NULL);
56 return result;
57 }
58 VerifyFixClassname(clname);
59
60 if (!VerifyClassname(clname, JNI_TRUE)) { /* expects slashed name */
61 goto done;
62 }
63
64 result = JVM_KnownToNotExist(env, loader, clname);
65
66 done:
67 if (clname != buf) {
68 free(clname);
69 }
70
71 return result;
72 }
73
74 JNIEXPORT jobjectArray JNICALL
75 Java_sun_misc_URLClassPath_getLookupCacheURLs(JNIEnv *env, jclass cls, jobject loader)
77 return JVM_GetResourceLookupCacheURLs(env, loader);
78 }
79
80
81 JNIEXPORT jintArray JNICALL
82 Java_sun_misc_URLClassPath_getLookupCacheForClassLoader(JNIEnv *env, jclass cls,
83 jobject loader,
84 jstring resource_name)
85 {
86 char *resname;
87 jintArray result = NULL;
88 char buf[128];
89
90 if (resource_name == NULL) {
91 JNU_ThrowNullPointerException(env, NULL);
92 return result;
93 }
94
95 resname = getUTF(env, resource_name, buf, sizeof(buf));
96 if (resname == NULL) {
97 JNU_ThrowOutOfMemoryError(env, NULL);
98 return result;
99 }
100 result = JVM_GetResourceLookupCache(env, loader, resname);
101
102 done:
103 if (resname != buf) {
104 free(resname);
105 }
106
107 return result;
108 }
109
|
35
36 extern char*
37 getUTF(JNIEnv *env, jstring str, char* localBuf, int bufSize);
38
39
40 JNIEXPORT jboolean JNICALL
41 Java_sun_misc_URLClassPath_knownToNotExist0(JNIEnv *env, jclass cls, jobject loader,
42 jstring classname)
43 {
44 char *clname;
45 jboolean result = JNI_FALSE;
46 char buf[128];
47
48 if (classname == NULL) {
49 JNU_ThrowNullPointerException(env, NULL);
50 return result;
51 }
52
53 clname = getUTF(env, classname, buf, sizeof(buf));
54 if (clname == NULL) {
55 // getUTF() throws OOME before returning NULL, no need to throw OOME here
56 return result;
57 }
58 VerifyFixClassname(clname);
59
60 if (!VerifyClassname(clname, JNI_TRUE)) { /* expects slashed name */
61 goto done;
62 }
63
64 result = JVM_KnownToNotExist(env, loader, clname);
65
66 done:
67 if (clname != buf) {
68 free(clname);
69 }
70
71 return result;
72 }
73
74 JNIEXPORT jobjectArray JNICALL
75 Java_sun_misc_URLClassPath_getLookupCacheURLs(JNIEnv *env, jclass cls, jobject loader)
77 return JVM_GetResourceLookupCacheURLs(env, loader);
78 }
79
80
81 JNIEXPORT jintArray JNICALL
82 Java_sun_misc_URLClassPath_getLookupCacheForClassLoader(JNIEnv *env, jclass cls,
83 jobject loader,
84 jstring resource_name)
85 {
86 char *resname;
87 jintArray result = NULL;
88 char buf[128];
89
90 if (resource_name == NULL) {
91 JNU_ThrowNullPointerException(env, NULL);
92 return result;
93 }
94
95 resname = getUTF(env, resource_name, buf, sizeof(buf));
96 if (resname == NULL) {
97 // getUTF() throws OOME before returning NULL, no need to throw OOME here
98 return result;
99 }
100 result = JVM_GetResourceLookupCache(env, loader, resname);
101
102 done:
103 if (resname != buf) {
104 free(resname);
105 }
106
107 return result;
108 }
109
|