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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
RootedObject array(context(), &transferable.toObject());
|
JSContext *cx = context();
|
||||||
if (!JS_IsArrayObject(context(), array)) {
|
RootedObject array(cx, &transferable.toObject());
|
||||||
|
if (!JS_IsArrayObject(cx, array)) {
|
||||||
reportErrorTransferable();
|
reportErrorTransferable();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t length;
|
uint32_t length;
|
||||||
if (!JS_GetArrayLength(context(), array, &length)) {
|
if (!JS_GetArrayLength(cx, array, &length)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
RootedValue v(context());
|
RootedValue v(context());
|
||||||
|
|
||||||
for (uint32_t i = 0; i < length; ++i) {
|
for (uint32_t i = 0; i < length; ++i) {
|
||||||
if (!JS_GetElement(context(), array, i, &v)) {
|
if (!JS_GetElement(cx, array, i, &v)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -898,25 +899,26 @@ JSStructuredCloneWriter::startWrite(const Value &v)
|
|||||||
bool
|
bool
|
||||||
JSStructuredCloneWriter::writeTransferMap()
|
JSStructuredCloneWriter::writeTransferMap()
|
||||||
{
|
{
|
||||||
if (!transferableObjects.empty()) {
|
if (transferableObjects.empty())
|
||||||
if (!out.writePair(SCTAG_TRANSFER_MAP_HEADER, (uint32_t)SCTAG_TM_NOT_MARKED))
|
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;
|
return false;
|
||||||
|
|
||||||
for (HashSet<JSObject*>::Range r = transferableObjects.all();
|
void *content;
|
||||||
!r.empty(); r.popFront()) {
|
uint8_t *data;
|
||||||
JSObject *obj = r.front();
|
if (!JS_StealArrayBufferContents(context(), obj, &content, &data))
|
||||||
|
return false;
|
||||||
|
|
||||||
if (!memory.put(obj, memory.count()))
|
if (!out.writePair(SCTAG_TRANSFER_MAP, 0) || !out.writePtr(content))
|
||||||
return false;
|
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -332,42 +332,42 @@ GetViewListRef(ArrayBufferObject *obj)
|
|||||||
void
|
void
|
||||||
ArrayBufferObject::changeContents(JSContext *maybecx, ObjectElements *newHeader)
|
ArrayBufferObject::changeContents(JSContext *maybecx, ObjectElements *newHeader)
|
||||||
{
|
{
|
||||||
// Grab out data before invalidating it.
|
// Grab out data before invalidating it.
|
||||||
uint32_t byteLengthCopy = byteLength();
|
uint32_t byteLengthCopy = byteLength();
|
||||||
uintptr_t oldDataPointer = uintptr_t(dataPointer());
|
uintptr_t oldDataPointer = uintptr_t(dataPointer());
|
||||||
ArrayBufferViewObject *viewListHead = GetViewList(this);
|
ArrayBufferViewObject *viewListHead = GetViewList(this);
|
||||||
|
|
||||||
// Update all views.
|
// Update all views.
|
||||||
uintptr_t newDataPointer = uintptr_t(newHeader->elements());
|
uintptr_t newDataPointer = uintptr_t(newHeader->elements());
|
||||||
for (ArrayBufferViewObject *view = viewListHead; view; view = view->nextView()) {
|
for (ArrayBufferViewObject *view = viewListHead; view; view = view->nextView()) {
|
||||||
uintptr_t newDataPtr = uintptr_t(view->getPrivate()) - oldDataPointer + newDataPointer;
|
uintptr_t newDataPtr = uintptr_t(view->getPrivate()) - oldDataPointer + newDataPointer;
|
||||||
view->setPrivate(reinterpret_cast<uint8_t*>(newDataPtr));
|
view->setPrivate(reinterpret_cast<uint8_t*>(newDataPtr));
|
||||||
|
|
||||||
// Notify compiled jit code that the base pointer has moved.
|
// Notify compiled jit code that the base pointer has moved.
|
||||||
if (maybecx)
|
if (maybecx)
|
||||||
MarkObjectStateChange(maybecx, view);
|
MarkObjectStateChange(maybecx, view);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Change to the new header (now, so we can use SetViewList).
|
// Change to the new header (now, so we can use SetViewList).
|
||||||
elements = newHeader->elements();
|
elements = newHeader->elements();
|
||||||
|
|
||||||
// Initialize 'newHeader'.
|
// Initialize 'newHeader'.
|
||||||
ArrayBufferObject::setElementsHeader(newHeader, byteLengthCopy);
|
ArrayBufferObject::setElementsHeader(newHeader, byteLengthCopy);
|
||||||
SetViewList(this, viewListHead);
|
SetViewList(this, viewListHead);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
ArrayBufferObject::uninlineData(JSContext *maybecx)
|
ArrayBufferObject::uninlineData(JSContext *maybecx)
|
||||||
{
|
{
|
||||||
if (hasDynamicElements())
|
if (hasDynamicElements())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
ObjectElements *newHeader = AllocateArrayBufferContents(maybecx, byteLength(), dataPointer());
|
ObjectElements *newHeader = AllocateArrayBufferContents(maybecx, byteLength(), dataPointer());
|
||||||
if (!newHeader)
|
if (!newHeader)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
changeContents(maybecx, newHeader);
|
changeContents(maybecx, newHeader);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(JS_ION) && defined(JS_CPU_X64)
|
#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_FRIEND_API(JSObject *)
|
||||||
JS_GetObjectAsArrayBuffer(JSObject *obj, uint32_t *length, uint8_t **data)
|
JS_GetObjectAsArrayBuffer(JSObject *obj, uint32_t *length, uint8_t **data)
|
||||||
{
|
{
|
||||||
if (!(obj = CheckedUnwrap(obj)))
|
if (!(obj = CheckedUnwrap(obj)))
|
||||||
return nullptr;
|
return nullptr;
|
||||||
if (!obj->is<ArrayBufferObject>())
|
if (!obj->is<ArrayBufferObject>())
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user