mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 861925 - Do-nothing refactoring to make the following patch cleaner, r=luke
--HG-- extra : rebase_source : dfcfbcfa42eb8a22684ba2fa6ded126e10d3c605
This commit is contained in:
parent
b2fd62da92
commit
8b538c797a
@ -644,21 +644,22 @@ JSStructuredCloneWriter::parseTransferable()
|
||||
return false;
|
||||
}
|
||||
|
||||
RootedObject array(context(), &transferable.toObject());
|
||||
if (!JS_IsArrayObject(context(), array)) {
|
||||
JSContext *cx = context();
|
||||
RootedObject array(cx, &transferable.toObject());
|
||||
if (!JS_IsArrayObject(cx, array)) {
|
||||
reportErrorTransferable();
|
||||
return false;
|
||||
}
|
||||
|
||||
uint32_t length;
|
||||
if (!JS_GetArrayLength(context(), array, &length)) {
|
||||
if (!JS_GetArrayLength(cx, array, &length)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
RootedValue v(context());
|
||||
|
||||
for (uint32_t i = 0; i < length; ++i) {
|
||||
if (!JS_GetElement(context(), array, i, &v)) {
|
||||
if (!JS_GetElement(cx, array, i, &v)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -898,25 +899,26 @@ JSStructuredCloneWriter::startWrite(const Value &v)
|
||||
bool
|
||||
JSStructuredCloneWriter::writeTransferMap()
|
||||
{
|
||||
if (!transferableObjects.empty()) {
|
||||
if (!out.writePair(SCTAG_TRANSFER_MAP_HEADER, (uint32_t)SCTAG_TM_NOT_MARKED))
|
||||
if (transferableObjects.empty())
|
||||
return true;
|
||||
|
||||
if (!out.writePair(SCTAG_TRANSFER_MAP_HEADER, (uint32_t)SCTAG_TM_NOT_MARKED))
|
||||
return false;
|
||||
|
||||
for (HashSet<JSObject*>::Range r = transferableObjects.all();
|
||||
!r.empty(); r.popFront()) {
|
||||
JSObject *obj = r.front();
|
||||
|
||||
if (!memory.put(obj, memory.count()))
|
||||
return false;
|
||||
|
||||
for (HashSet<JSObject*>::Range r = transferableObjects.all();
|
||||
!r.empty(); r.popFront()) {
|
||||
JSObject *obj = r.front();
|
||||
void *content;
|
||||
uint8_t *data;
|
||||
if (!JS_StealArrayBufferContents(context(), obj, &content, &data))
|
||||
return false;
|
||||
|
||||
if (!memory.put(obj, memory.count()))
|
||||
return false;
|
||||
|
||||
void *content;
|
||||
uint8_t *data;
|
||||
if (!JS_StealArrayBufferContents(context(), obj, &content, &data))
|
||||
return false;
|
||||
|
||||
if (!out.writePair(SCTAG_TRANSFER_MAP, 0) || !out.writePtr(content))
|
||||
return false;
|
||||
}
|
||||
if (!out.writePair(SCTAG_TRANSFER_MAP, 0) || !out.writePtr(content))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -332,42 +332,42 @@ GetViewListRef(ArrayBufferObject *obj)
|
||||
void
|
||||
ArrayBufferObject::changeContents(JSContext *maybecx, ObjectElements *newHeader)
|
||||
{
|
||||
// Grab out data before invalidating it.
|
||||
uint32_t byteLengthCopy = byteLength();
|
||||
uintptr_t oldDataPointer = uintptr_t(dataPointer());
|
||||
// Grab out data before invalidating it.
|
||||
uint32_t byteLengthCopy = byteLength();
|
||||
uintptr_t oldDataPointer = uintptr_t(dataPointer());
|
||||
ArrayBufferViewObject *viewListHead = GetViewList(this);
|
||||
|
||||
// Update all views.
|
||||
uintptr_t newDataPointer = uintptr_t(newHeader->elements());
|
||||
// Update all views.
|
||||
uintptr_t newDataPointer = uintptr_t(newHeader->elements());
|
||||
for (ArrayBufferViewObject *view = viewListHead; view; view = view->nextView()) {
|
||||
uintptr_t newDataPtr = uintptr_t(view->getPrivate()) - oldDataPointer + newDataPointer;
|
||||
view->setPrivate(reinterpret_cast<uint8_t*>(newDataPtr));
|
||||
uintptr_t newDataPtr = uintptr_t(view->getPrivate()) - oldDataPointer + newDataPointer;
|
||||
view->setPrivate(reinterpret_cast<uint8_t*>(newDataPtr));
|
||||
|
||||
// Notify compiled jit code that the base pointer has moved.
|
||||
if (maybecx)
|
||||
MarkObjectStateChange(maybecx, view);
|
||||
}
|
||||
// Notify compiled jit code that the base pointer has moved.
|
||||
if (maybecx)
|
||||
MarkObjectStateChange(maybecx, view);
|
||||
}
|
||||
|
||||
// Change to the new header (now, so we can use SetViewList).
|
||||
elements = newHeader->elements();
|
||||
elements = newHeader->elements();
|
||||
|
||||
// Initialize 'newHeader'.
|
||||
ArrayBufferObject::setElementsHeader(newHeader, byteLengthCopy);
|
||||
// Initialize 'newHeader'.
|
||||
ArrayBufferObject::setElementsHeader(newHeader, byteLengthCopy);
|
||||
SetViewList(this, viewListHead);
|
||||
}
|
||||
|
||||
bool
|
||||
ArrayBufferObject::uninlineData(JSContext *maybecx)
|
||||
{
|
||||
if (hasDynamicElements())
|
||||
return true;
|
||||
if (hasDynamicElements())
|
||||
return true;
|
||||
|
||||
ObjectElements *newHeader = AllocateArrayBufferContents(maybecx, byteLength(), dataPointer());
|
||||
if (!newHeader)
|
||||
return false;
|
||||
ObjectElements *newHeader = AllocateArrayBufferContents(maybecx, byteLength(), dataPointer());
|
||||
if (!newHeader)
|
||||
return false;
|
||||
|
||||
changeContents(maybecx, newHeader);
|
||||
return true;
|
||||
changeContents(maybecx, newHeader);
|
||||
return true;
|
||||
}
|
||||
|
||||
#if defined(JS_ION) && defined(JS_CPU_X64)
|
||||
@ -4261,8 +4261,8 @@ JS_GetObjectAsArrayBufferView(JSObject *obj, uint32_t *length, uint8_t **data)
|
||||
JS_FRIEND_API(JSObject *)
|
||||
JS_GetObjectAsArrayBuffer(JSObject *obj, uint32_t *length, uint8_t **data)
|
||||
{
|
||||
if (!(obj = CheckedUnwrap(obj)))
|
||||
return nullptr;
|
||||
if (!(obj = CheckedUnwrap(obj)))
|
||||
return nullptr;
|
||||
if (!obj->is<ArrayBufferObject>())
|
||||
return nullptr;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user