1
0
mirror of https://github.com/moparisthebest/curl synced 2024-08-13 17:03:50 -04:00

minor updates, still crashes

This commit is contained in:
Daniel Stenberg 2001-04-11 10:06:28 +00:00
parent a086e99bae
commit 5eafb69bdb

View File

@ -11,8 +11,7 @@ struct javacurl {
struct writecallback { struct writecallback {
jmethodID mid; jmethodID mid;
JNIEnv *java; JNIEnv *java;
jclass cls; jobject object;
jobject obj;
} write; } write;
}; };
@ -89,18 +88,25 @@ static int javacurl_write_callback(void *ptr,
struct javacurl *curl = (struct javacurl *)stream; struct javacurl *curl = (struct javacurl *)stream;
size_t realsize = size * nmemb; size_t realsize = size * nmemb;
JNIEnv *java = curl->write.java; JNIEnv *java = curl->write.java;
jbyteArray jb; jbyteArray jb=NULL;
int ret; int ret=0;
fprintf(stderr, "%d bytes data received in callback, ptr %p, java =%p\n",
realsize, curl, java);
jb=(*java)->NewByteArray(java, realsize); jb=(*java)->NewByteArray(java, realsize);
(*java)->SetByteArrayRegion(java, jb, 0, (*java)->SetByteArrayRegion(java, jb, 0,
realsize, (jbyte *)ptr); realsize, (jbyte *)ptr);
fprintf(stderr, "created byte-array\n");
ret = (*java)->CallIntMethod(java, ret = (*java)->CallIntMethod(java,
curl->write.obj, curl->write.object,
curl->write.mid, curl->write.mid,
jb); jb);
fprintf(stderr, "java-method returned %d\n", ret);
return realsize; return realsize;
} }
@ -109,9 +115,9 @@ static int javacurl_write_callback(void *ptr,
*/ */
JNIEXPORT jint JNICALL Java_CurlGlue_jni_1setopt__IILCurlWrite_2 JNIEXPORT jint JNICALL Java_CurlGlue_jni_1setopt__IILCurlWrite_2
(JNIEnv *java, jobject myself, jint jcurl, jint option, jobject value) (JNIEnv *java, jobject myself, jint jcurl, jint option, jobject object)
{ {
jclass cls = (*java)->GetObjectClass(java, value); jclass cls = (*java)->GetObjectClass(java, object);
jmethodID mid; jmethodID mid;
struct javacurl *curl = (struct javacurl *)jcurl; struct javacurl *curl = (struct javacurl *)jcurl;
@ -129,10 +135,10 @@ JNIEXPORT jint JNICALL Java_CurlGlue_jni_1setopt__IILCurlWrite_2
} }
curl->write.mid = mid; curl->write.mid = mid;
curl->write.java = java; curl->write.java = java;
curl->write.cls = cls; curl->write.object = object;
curl->write.obj = value;
puts("setopt write callback and write file pointer"); fprintf(stderr, "setopt write callback and write file pointer %p, java = %p\n",
curl, java);
curl_easy_setopt(curl->libcurl, CURLOPT_WRITEFUNCTION, curl_easy_setopt(curl->libcurl, CURLOPT_WRITEFUNCTION,
javacurl_write_callback); javacurl_write_callback);