/* This Source Code Form is subject to the terms of the Mozilla Public *License,v.2.0.IfacopyoftheMPLwasnotdistributedwiththis
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/** GC-safe representations of consecutive JS::Value in memory. */
/* A fixed-size array of values, for use inside Rooted<>. */ template <size_t N> struct ValueArray {
Value elements[N]; void trace(JSTracer* trc) { js::TraceValueArray(trc, N, elements); }
};
/** RootedValueArray roots an internal fixed-size array of Values. */ template <size_t N> using RootedValueArray = Rooted<ValueArray<N>>;
/** CallArgs must already be rooted somewhere up the stack. */
MOZ_IMPLICIT HandleValueArray(const JS::CallArgs& args)
: length_(args.length()), elements_(args.array()) {}
/** Use with care! Only call this if the data is guaranteed to be marked. */ static HandleValueArray fromMarkedLocation(size_t len, const Value* elements) { return HandleValueArray(len, elements);
}
template <size_t N, typename Container> class MutableWrappedPtrOperations<JS::ValueArray<N>, Container>
: public WrappedPtrOperations<JS::ValueArray<N>, Container> { using Base = WrappedPtrOperations<JS::ValueArray<N>, Container>;
JS::ValueArray<N>& array() { returnstatic_cast<Container*>(this)->get(); }
public: using Base::begin;
JS::Value* begin() { return array().elements; }
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.