icecat: add release icecat-140.6.0-1gnu1 for aramo
This commit is contained in:
parent
92fef42cd6
commit
17ba0259bf
3382 changed files with 457689 additions and 569094 deletions
|
|
@ -12,8 +12,21 @@
|
|||
#include "js/ArrayBuffer.h"
|
||||
|
||||
namespace mozilla::dom {
|
||||
NS_IMPL_CYCLE_COLLECTION_WITH_JS_MEMBERS(RTCEncodedFrameBase, (mGlobal),
|
||||
(mData))
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_CLASS(RTCEncodedFrameBase)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(RTCEncodedFrameBase)
|
||||
using ::ImplCycleCollectionUnlink;
|
||||
tmp->DetachData();
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mGlobal)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mData)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(RTCEncodedFrameBase)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mGlobal)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||
NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(RTCEncodedFrameBase)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBERS(mData)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRACE_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTING_ADDREF(RTCEncodedFrameBase)
|
||||
NS_IMPL_CYCLE_COLLECTING_RELEASE(RTCEncodedFrameBase)
|
||||
|
||||
|
|
@ -39,11 +52,27 @@ RTCEncodedFrameBase::RTCEncodedFrameBase(
|
|||
jsapi.cx(), mFrame->GetData().size(), (void*)(mFrame->GetData().data()));
|
||||
}
|
||||
|
||||
RTCEncodedFrameBase::~RTCEncodedFrameBase() = default;
|
||||
RTCEncodedFrameBase::~RTCEncodedFrameBase() { DetachData(); }
|
||||
|
||||
void RTCEncodedFrameBase::DetachData() {
|
||||
// We might have handled this in unlink already
|
||||
if (mGlobal) {
|
||||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(mGlobal))) {
|
||||
return;
|
||||
}
|
||||
|
||||
JS::Rooted<JSObject*> rootedData(jsapi.cx(), mData);
|
||||
if (rootedData) {
|
||||
JS::DetachArrayBuffer(jsapi.cx(), rootedData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unsigned long RTCEncodedFrameBase::Timestamp() const { return mTimestamp; }
|
||||
|
||||
void RTCEncodedFrameBase::SetData(const ArrayBuffer& aData) {
|
||||
DetachData();
|
||||
mData.set(aData.Obj());
|
||||
if (mFrame) {
|
||||
aData.ProcessData([&](const Span<uint8_t>& aData, JS::AutoCheckCannotGC&&) {
|
||||
|
|
@ -61,12 +90,7 @@ uint64_t RTCEncodedFrameBase::GetCounter() const { return mCounter; }
|
|||
|
||||
std::unique_ptr<webrtc::TransformableFrameInterface>
|
||||
RTCEncodedFrameBase::TakeFrame() {
|
||||
AutoJSAPI jsapi;
|
||||
if (!jsapi.Init(mGlobal)) {
|
||||
MOZ_CRASH("Could not init JSAPI!");
|
||||
}
|
||||
JS::Rooted<JSObject*> rootedData(jsapi.cx(), mData);
|
||||
JS::DetachArrayBuffer(jsapi.cx(), rootedData);
|
||||
DetachData();
|
||||
return std::move(mFrame);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue