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:
parent
a086e99bae
commit
5eafb69bdb
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user