Fix dynamic callback on HL (resolves issues in cURL)

This commit is contained in:
Joshua Granick
2024-01-04 08:48:45 -08:00
parent 8e54e6db47
commit 9b9faae177
2 changed files with 10 additions and 5 deletions

View File

@@ -718,7 +718,8 @@ namespace lime {
pos->v.i = position;
curl_gc_mutex.Unlock ();
length = *((int*)writeCallback->Call (bytes, pos));
vdynamic* _length = (vdynamic*)writeCallback->Call (bytes, pos);
length = (_length != NULL ? _length->v.i : 0);
curl_gc_mutex.Lock ();
if (length == CURL_WRITEFUNC_PAUSE) {
@@ -749,7 +750,8 @@ namespace lime {
ulnow->v.d = progress->ulnow;
curl_gc_mutex.Unlock ();
code = *((int*)progressCallback->Call (dltotal, dlnow, ultotal, ulnow));
vdynamic* _code = (vdynamic*)progressCallback->Call (dltotal, dlnow, ultotal, ulnow);
code = (_code != NULL ? _code->v.i : 0);
curl_gc_mutex.Lock ();
if (code != 0) { // CURLE_OK
@@ -776,7 +778,8 @@ namespace lime {
ulnow->v.i = xferInfo->ulnow;
curl_gc_mutex.Unlock ();
code = *((int*)xferInfoCallback->Call (dltotal, dlnow, ultotal, ulnow));
vdynamic* _code = (vdynamic*)xferInfoCallback->Call (dltotal, dlnow, ultotal, ulnow);
code = (_code != NULL ? _code->v.i : 0);
curl_gc_mutex.Lock ();
if (code != 0) {
@@ -1706,7 +1709,7 @@ namespace lime {
}
progressCallbacks[handle] = new ValuePointer (parameter);;
progressCallbacks[handle] = new ValuePointer (parameter);
progressValues[handle] = new CURL_Progress ();
code = curl_easy_setopt (easy_handle, type, progress_callback);