Skip to content

Commit a519fba

Browse files
madanagopaltMichael Fiess
authored and
Michael Fiess
committed
changes for v8 crash on http request delay (pxscene#1650)
* changes for v8 crash on http request delay * Update test_rtHttpRequest.cpp * changes for v8 crash on http request delay * Update test_rtHttpRequest.cpp * Update test_rtHttpRequest.cpp * Update test_rtHttpRequest.cpp * Update test_rtHttpRequest.cpp * added null check
1 parent 3d22bd5 commit a519fba

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

examples/pxScene2d/src/v8_modules/console.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,6 @@ module.exports = {
5252
error: error,
5353
log: log,
5454
info: info,
55+
time:info,
56+
timeEnd: info,
5557
};

src/rtHttpRequest.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,11 +133,12 @@ rtError rtHttpRequest::end()
133133
return RT_FAIL;
134134
}
135135

136-
rtFileDownloadRequest* req = new rtFileDownloadRequest(mUrl.cString(), this, rtHttpRequest::onDownloadComplete);
136+
rtFileDownloadRequest* req = new rtFileDownloadRequest(mUrl.cString(), this, rtHttpRequest::onDownloadCompleteAndRelease);
137137
req->setAdditionalHttpHeaders(mHeaders);
138138
req->setMethod(mMethod);
139139
req->setReadData(mWriteData, mWriteDataSize);
140140
if (rtFileDownloader::instance()->addToDownloadQueue(req)) {
141+
AddRef();
141142
mInQueue = true;
142143
return RT_OK;
143144
}
@@ -278,6 +279,16 @@ void rtHttpRequest::onDownloadComplete(rtFileDownloadRequest* downloadRequest)
278279
}
279280
}
280281

282+
void rtHttpRequest::onDownloadCompleteAndRelease(rtFileDownloadRequest* downloadRequest)
283+
{
284+
onDownloadComplete(downloadRequest);
285+
rtHttpRequest* req = (rtHttpRequest*)downloadRequest->callbackData();
286+
if (req != NULL)
287+
{
288+
req->Release();
289+
}
290+
}
291+
281292
rtString rtHttpRequest::url() const
282293
{
283294
return mUrl;

src/rtHttpRequest.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ class rtHttpRequest : public rtObject
5757
rtError removeHeader(const rtString& name);
5858

5959
static void onDownloadComplete(rtFileDownloadRequest* downloadRequest);
60+
static void onDownloadCompleteAndRelease(rtFileDownloadRequest* downloadRequest);
6061

6162
rtString url() const;
6263
std::vector<rtString> headers() const;

0 commit comments

Comments
 (0)