Files
tubestation/dom/simpledb/SDBResults.cpp
Stanca Serban 68116687ca Backed out 6 changesets (bug 1900930) for causing xpcshell assertion failures in ErrorResult.h. CLOSED TREE
Backed out changeset 5234a13894b2 (bug 1900930)
Backed out changeset 638842494167 (bug 1900930)
Backed out changeset 36695bae43ed (bug 1900930)
Backed out changeset 23ab72aa4589 (bug 1900930)
Backed out changeset c89109c12d59 (bug 1900930)
Backed out changeset 2d3f52edb98a (bug 1900930)
2024-07-25 13:53:53 +03:00

54 lines
1.4 KiB
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "SDBResults.h"
#include <cstdint>
#include <cstring>
#include <new>
#include <utility>
#include "ErrorList.h"
#include "js/RootingAPI.h"
#include "js/TypeDecls.h"
#include "mozilla/Assertions.h"
#include "mozilla/MacroForEach.h"
#include "mozilla/dom/TypedArray.h"
#include "nsDebug.h"
#include "nsError.h"
#include "nsTArray.h"
#include "nscore.h"
namespace mozilla::dom {
SDBResult::SDBResult(const nsACString& aData) : mData(aData) {}
NS_IMPL_ISUPPORTS(SDBResult, nsISDBResult)
NS_IMETHODIMP
SDBResult::GetAsArray(nsTArray<uint8_t>& aData) {
uint32_t length = mData.Length();
aData.SetLength(length);
if (length != 0) {
memcpy(aData.Elements(), mData.BeginReading(), length * sizeof(uint8_t));
}
return NS_OK;
}
NS_IMETHODIMP
SDBResult::GetAsArrayBuffer(JSContext* aCx,
JS::MutableHandle<JS::Value> _retval) {
ErrorResult rv;
JS::Rooted<JSObject*> arrayBuffer(aCx, ArrayBuffer::Create(aCx, mData, rv));
ENSURE_SUCCESS(rv, rv.StealNSResult());
_retval.setObject(*arrayBuffer);
return NS_OK;
}
} // namespace mozilla::dom