本文整理汇总了C++中JS_ReportOutOfMemory函数的典型用法代码示例。如果您正苦于以下问题:C++ JS_ReportOutOfMemory函数的具体用法?C++ JS_ReportOutOfMemory怎么用?C++ JS_ReportOutOfMemory使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了JS_ReportOutOfMemory函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: Throw
bool
Throw(JSContext* aCx, nsresult aRv, const char* aMessage)
{
if (JS_IsExceptionPending(aCx)) {
// Don't clobber the existing exception.
return false;
}
CycleCollectedJSRuntime* runtime = CycleCollectedJSRuntime::Get();
nsCOMPtr<nsIException> existingException = runtime->GetPendingException();
if (existingException) {
nsresult nr;
if (NS_SUCCEEDED(existingException->GetResult(&nr)) &&
aRv == nr) {
// Reuse the existing exception.
// Clear pending exception
runtime->SetPendingException(nullptr);
if (!ThrowExceptionObject(aCx, existingException)) {
// If we weren't able to throw an exception we're
// most likely out of memory
JS_ReportOutOfMemory(aCx);
}
return false;
}
}
nsRefPtr<Exception> finalException;
// Do we use DOM exceptions for this error code?
switch (NS_ERROR_GET_MODULE(aRv)) {
case NS_ERROR_MODULE_DOM:
case NS_ERROR_MODULE_SVG:
case NS_ERROR_MODULE_DOM_XPATH:
case NS_ERROR_MODULE_DOM_INDEXEDDB:
case NS_ERROR_MODULE_DOM_FILEHANDLE:
finalException = DOMException::Create(aRv);
break;
default:
break;
}
// If not, use the default.
if (!finalException) {
// aMessage can be null.
finalException = new Exception(nsCString(aMessage), aRv,
EmptyCString(), nullptr, nullptr);
}
MOZ_ASSERT(finalException);
if (!ThrowExceptionObject(aCx, finalException)) {
// If we weren't able to throw an exception we're
// most likely out of memory
JS_ReportOutOfMemory(aCx);
}
return false;
}
开发者ID:ConradIrwin,项目名称:gecko-dev,代码行数:60,代码来源:Exceptions.cpp
示例2: JS_XDRRegisterClass
JS_XDRRegisterClass(JSXDRState *xdr, JSClass *clasp, uint32 *idp)
{
uintN numclasses, maxclasses;
JSClass **registry;
numclasses = xdr->numclasses;
maxclasses = xdr->maxclasses;
if (numclasses == maxclasses) {
maxclasses = (maxclasses == 0) ? CLASS_REGISTRY_MIN : maxclasses << 1;
registry = (JSClass **)
JS_realloc(xdr->cx, xdr->registry, maxclasses * sizeof(JSClass *));
if (!registry)
return JS_FALSE;
xdr->registry = registry;
xdr->maxclasses = maxclasses;
} else {
JS_ASSERT(numclasses && numclasses < maxclasses);
registry = xdr->registry;
}
registry[numclasses] = clasp;
if (xdr->reghash) {
JSRegHashEntry *entry = (JSRegHashEntry *)
JS_DHashTableOperate(xdr->reghash, clasp->name, JS_DHASH_ADD);
if (!entry) {
JS_ReportOutOfMemory(xdr->cx);
return JS_FALSE;
}
entry->name = clasp->name;
entry->index = numclasses;
}
*idp = CLASS_INDEX_TO_ID(numclasses);
xdr->numclasses = ++numclasses;
return JS_TRUE;
}
开发者ID:2812140729,项目名称:robomongo,代码行数:35,代码来源:jsxdrapi.c
示例3: getter_AddRefs
// static
void
XPCThrower::BuildAndThrowException(JSContext* cx, nsresult rv, const char* sz)
{
JSBool success = false;
/* no need to set an expection if the security manager already has */
if (rv == NS_ERROR_XPC_SECURITY_MANAGER_VETO && JS_IsExceptionPending(cx))
return;
nsCOMPtr<nsIException> finalException;
nsCOMPtr<nsIException> defaultException;
nsXPCException::NewException(sz, rv, nsnull, nsnull, getter_AddRefs(defaultException));
nsIExceptionManager * exceptionManager = XPCJSRuntime::Get()->GetExceptionManager();
if (exceptionManager) {
// Ask the provider for the exception, if there is no provider
// we expect it to set e to null
exceptionManager->GetExceptionFromProvider(rv,
defaultException,
getter_AddRefs(finalException));
// We should get at least the defaultException back,
// but just in case
if (finalException == nsnull) {
finalException = defaultException;
}
}
// XXX Should we put the following test and call to JS_ReportOutOfMemory
// inside this test?
if (finalException)
success = ThrowExceptionObject(cx, finalException);
// If we weren't able to build or throw an exception we're
// most likely out of memory
if (!success)
JS_ReportOutOfMemory(cx);
}
开发者ID:lofter2011,项目名称:Icefox,代码行数:36,代码来源:XPCThrower.cpp
示例4: jsj_ConvertJavaSignatureToString
/*
* Convert a JavaSignature object into a string format as used by
* the JNI functions, e.g. java.lang.Object ==> "Ljava/lang/Object;"
* The caller is responsible for freeing the resulting string.
*
* If an error is encountered, NULL is returned and an error reported.
*/
const char *
jsj_ConvertJavaSignatureToString(JSContext *cx, JavaSignature *signature)
{
char *sig;
if (IS_OBJECT_TYPE(signature->type)) {
/* A non-array object class */
sig = JS_smprintf("L%s;", signature->name);
if (sig)
jsj_MakeJNIClassname(sig);
} else if (signature->type == JAVA_SIGNATURE_ARRAY) {
/* An array class */
const char *component_signature_string;
component_signature_string =
jsj_ConvertJavaSignatureToString(cx, signature->array_component_signature);
if (!component_signature_string)
return NULL;
sig = JS_smprintf("[%s", component_signature_string);
JS_smprintf_free((char*)component_signature_string);
} else {
/* A primitive class */
sig = JS_smprintf("%c", get_jdk_signature_char(signature->type));
}
if (!sig) {
JS_ReportOutOfMemory(cx);
return NULL;
}
return sig;
}
开发者ID:amyvmiwei,项目名称:firefox,代码行数:40,代码来源:jsj_class.c
示例5: jsj_ConvertJavaSignatureToHRString
/*
* Convert a JavaSignature object into a human-readable string format as seen
* in Java source files, e.g. "byte", or "int[][]" or "java.lang.String".
* The caller is responsible for freeing the resulting string.
*
* If an error is encountered, NULL is returned and an error reported.
*/
const char *
jsj_ConvertJavaSignatureToHRString(JSContext *cx,
JavaSignature *signature)
{
char *sig;
JavaSignature *acs;
if (signature->type == JAVA_SIGNATURE_ARRAY) {
/* An array class */
const char *component_signature_string;
acs = signature->array_component_signature;
component_signature_string =
jsj_ConvertJavaSignatureToHRString(cx, acs);
if (!component_signature_string)
return NULL;
sig = JS_smprintf("%s[]", component_signature_string);
JS_smprintf_free((char*)component_signature_string);
} else {
/* A primitive class or a non-array object class */
sig = JS_smprintf("%s", signature->name);
}
if (!sig) {
JS_ReportOutOfMemory(cx);
return NULL;
}
return sig;
}
开发者ID:amyvmiwei,项目名称:firefox,代码行数:36,代码来源:jsj_class.c
示例6: PJS_Call_js_function
PJS_EXTERN JSBool
PJS_Call_js_function(
pTHX_
JSContext *cx,
JSObject *gobj,
jsval func,
AV *av,
jsval *rval
) {
jsval *arg_list;
SV *val;
int arg_count, i;
JSBool res;
arg_count = av_len(av);
Newz(1, arg_list, arg_count + 1, jsval);
if(!arg_list) {
JS_ReportOutOfMemory(cx);
return JS_FALSE;
}
for(i = 0; i <= arg_count; i++) {
val = *av_fetch(av, i, 0);
if (!PJS_ReflectPerl2JS(aTHX_ cx, gobj, val, &(arg_list[i]))) {
Safefree(arg_list);
croak("Can't convert argument number %d to jsval", i);
}
}
res = JS_CallFunctionValue(cx, gobj, func, i, arg_list, rval);
Safefree(arg_list);
return res;
}
开发者ID:gitpan,项目名称:JSPL,代码行数:34,代码来源:PJS_Call.c
示例7: strncmp
NS_IMETHODIMP
nsJetpack::NewResolve(nsIXPConnectWrappedNative *wrapper,
JSContext * cx, JSObject * obj,
jsval id, PRUint32 flags,
JSObject * *objp, PRBool *_retval)
{
if (JSVAL_IS_STRING(id) &&
strncmp(JS_GetStringBytes(JSVAL_TO_STRING(id)), "get", 3) == 0) {
JSFunction *get = JS_NewFunction(cx, getEndpoint, 0, 0,
JS_GetParent(cx, obj), "get");
if (!get) {
JS_ReportOutOfMemory(cx);
*_retval = PR_FALSE;
return NS_OK;
}
JSObject *getObj = JS_GetFunctionObject(get);
jsid idid;
*objp = obj;
*_retval = (JS_ValueToId(cx, id, &idid) &&
JS_DefinePropertyById(cx, obj, idid,
OBJECT_TO_JSVAL(getObj),
nsnull, nsnull,
JSPROP_ENUMERATE |
JSPROP_READONLY |
JSPROP_PERMANENT));
return NS_OK;
}
*objp = nsnull;
*_retval = PR_TRUE;
return NS_OK;
}
开发者ID:8planes,项目名称:mirosubs-jetpack,代码行数:35,代码来源:nsJetpack.cpp
示例8: js_AtomizeHashedKey
static JSAtom *
js_AtomizeHashedKey(JSContext *cx, jsval key, JSHashNumber keyHash, uintN flags)
{
JSAtomState *state;
JSHashTable *table;
JSHashEntry *he, **hep;
JSAtom *atom;
state = &cx->runtime->atomState;
JS_LOCK(&state->lock, cx);
table = state->table;
hep = JS_HashTableRawLookup(table, keyHash, (void *)key);
if ((he = *hep) == NULL) {
he = JS_HashTableRawAdd(table, hep, keyHash, (void *)key, NULL);
if (!he) {
JS_ReportOutOfMemory(cx);
atom = NULL;
goto out;
}
}
atom = (JSAtom *)he;
atom->flags |= flags;
out:
JS_UNLOCK(&state->lock,cx);
return atom;
}
开发者ID:DmitrySigaev,项目名称:DSMedia,代码行数:27,代码来源:jsatom.c
示例9: GrowTokenBuf
static JSBool
GrowTokenBuf(JSContext *cx, JSTokenBuf *tb)
{
jschar *base;
ptrdiff_t offset, length;
size_t tbsize;
JSArenaPool *pool;
base = tb->base;
offset = PTRDIFF(tb->ptr, base, jschar);
pool = &cx->tempPool;
if (!base) {
tbsize = TBMIN * sizeof(jschar);
length = TBMIN;
JS_ARENA_ALLOCATE_CAST(base, jschar *, pool, tbsize);
} else {
length = PTRDIFF(tb->limit, base, jschar);
tbsize = length * sizeof(jschar);
length <<= 1;
JS_ARENA_GROW_CAST(base, jschar *, pool, tbsize, tbsize);
}
if (!base) {
JS_ReportOutOfMemory(cx);
return JS_FALSE;
}
tb->base = base;
tb->limit = base + length;
tb->ptr = base + offset;
return JS_TRUE;
}
开发者ID:artcom,项目名称:y60,代码行数:30,代码来源:jsscan.c
示例10: Throw
bool
Throw(JSContext* aCx, nsresult aRv, const nsACString& aMessage)
{
if (aRv == NS_ERROR_UNCATCHABLE_EXCEPTION) {
// Nuke any existing exception on aCx, to make sure we're uncatchable.
JS_ClearPendingException(aCx);
return false;
}
if (JS_IsExceptionPending(aCx)) {
// Don't clobber the existing exception.
return false;
}
CycleCollectedJSRuntime* runtime = CycleCollectedJSRuntime::Get();
nsCOMPtr<nsIException> existingException = runtime->GetPendingException();
// Make sure to clear the pending exception now. Either we're going to reuse
// it (and we already grabbed it), or we plan to throw something else and this
// pending exception is no longer relevant.
runtime->SetPendingException(nullptr);
// Ignore the pending exception if we have a non-default message passed in.
if (aMessage.IsEmpty() && existingException) {
nsresult nr;
if (NS_SUCCEEDED(existingException->GetResult(&nr)) &&
aRv == nr) {
// Reuse the existing exception.
if (!ThrowExceptionObject(aCx, existingException)) {
// If we weren't able to throw an exception we're
// most likely out of memory
JS_ReportOutOfMemory(aCx);
}
return false;
}
}
RefPtr<Exception> finalException = CreateException(aCx, aRv, aMessage);
MOZ_ASSERT(finalException);
if (!ThrowExceptionObject(aCx, finalException)) {
// If we weren't able to throw an exception we're
// most likely out of memory
JS_ReportOutOfMemory(aCx);
}
return false;
}
开发者ID:Neil511,项目名称:gecko-dev,代码行数:47,代码来源:Exceptions.cpp
示例11: Throw
bool
Throw(JSContext* aCx, nsresult aRv, const char* aMessage)
{
if (aRv == NS_ERROR_UNCATCHABLE_EXCEPTION) {
// Nuke any existing exception on aCx, to make sure we're uncatchable.
JS_ClearPendingException(aCx);
return false;
}
if (JS_IsExceptionPending(aCx)) {
// Don't clobber the existing exception.
return false;
}
CycleCollectedJSRuntime* runtime = CycleCollectedJSRuntime::Get();
nsCOMPtr<nsIException> existingException = runtime->GetPendingException();
if (existingException) {
nsresult nr;
if (NS_SUCCEEDED(existingException->GetResult(&nr)) &&
aRv == nr) {
// Reuse the existing exception.
// Clear pending exception
runtime->SetPendingException(nullptr);
if (!ThrowExceptionObject(aCx, existingException)) {
// If we weren't able to throw an exception we're
// most likely out of memory
JS_ReportOutOfMemory(aCx);
}
return false;
}
}
nsRefPtr<Exception> finalException = CreateException(aCx, aRv, aMessage);
MOZ_ASSERT(finalException);
if (!ThrowExceptionObject(aCx, finalException)) {
// If we weren't able to throw an exception we're
// most likely out of memory
JS_ReportOutOfMemory(aCx);
}
return false;
}
开发者ID:LordJZ,项目名称:gecko-dev,代码行数:45,代码来源:Exceptions.cpp
示例12: js_alloc_temp_space
js_alloc_temp_space(void *priv, size_t size)
{
JSContext *cx = priv;
void *space;
JS_ARENA_ALLOCATE(space, &cx->tempPool, size);
if (!space)
JS_ReportOutOfMemory(cx);
return space;
}
开发者ID:DmitrySigaev,项目名称:DSMedia,代码行数:10,代码来源:jsatom.c
示例13: js_alloc_temp_entry
js_alloc_temp_entry(void *priv, const void *key)
{
JSContext *cx = priv;
JSAtomListElement *ale;
JS_ARENA_ALLOCATE_TYPE(ale, JSAtomListElement, &cx->tempPool);
if (!ale) {
JS_ReportOutOfMemory(cx);
return NULL;
}
return &ale->entry;
}
开发者ID:DmitrySigaev,项目名称:DSMedia,代码行数:12,代码来源:jsatom.c
示例14: nidium_sm_timer
bool JSGlobal::JS_setInterval(JSContext *cx, JS::CallArgs &args)
{
struct nidium_sm_timer *params;
int ms = 0, i;
int argc = args.length();
params = new nidium_sm_timer(cx);
if (!params) {
JS_ReportOutOfMemory(cx);
return false;
}
params->cx = cx;
params->global = m_Instance;
params->argc = nidium_max(0, argc - 2);
params->argv = new JS::PersistentRootedValue *[params->argc];
for (i = 0; i < argc - 2; i++) {
params->argv[i] = new JS::PersistentRootedValue(cx);
}
if (!JSUtils::ReportIfNotFunction(cx, args[0])) {
delete[] params->argv;
delete params;
return false;
}
params->func = args[0];
if (argc > 1 && !JS::ToInt32(cx, args[1], &ms)) {
ms = 0;
}
params->ms = nidium_max(8, ms);
for (i = 0; i < static_cast<int>(argc) - 2; i++) {
*params->argv[i] = args.array()[i + 2];
}
ape_timer_t *timer = APE_timer_create(
static_cast<ape_global *>(JS_GetContextPrivate(cx)), params->ms,
nidium_timerng_wrapper, static_cast<void *>(params));
APE_timer_unprotect(timer);
APE_timer_setclearfunc(timer, nidium_timer_deleted);
args.rval().setNumber(static_cast<double>(APE_timer_getid(timer)));
return true;
}
开发者ID:nidium,项目名称:Nidium,代码行数:52,代码来源:JSGlobal.cpp
示例15: js_AtomizeDouble
JSAtom *
js_AtomizeDouble(JSContext *cx, jsdouble d)
{
JSAtomState *state;
JSDHashTable *table;
JSAtomHashEntry *entry;
uint32 gen;
jsdouble *key;
jsval v;
state = &cx->runtime->atomState;
table = &state->doubleAtoms;
JS_LOCK(cx, &state->lock);
entry = TO_ATOM_ENTRY(JS_DHashTableOperate(table, &d, JS_DHASH_ADD));
if (!entry)
goto failed_hash_add;
if (entry->keyAndFlags == 0) {
gen = ++table->generation;
JS_UNLOCK(cx, &state->lock);
key = js_NewWeaklyRootedDouble(cx, d);
if (!key)
return NULL;
JS_LOCK(cx, &state->lock);
if (table->generation == gen) {
JS_ASSERT(entry->keyAndFlags == 0);
} else {
entry = TO_ATOM_ENTRY(JS_DHashTableOperate(table, key,
JS_DHASH_ADD));
if (!entry)
goto failed_hash_add;
if (entry->keyAndFlags != 0)
goto finish;
++table->generation;
}
INIT_ATOM_ENTRY(entry, key);
}
finish:
v = DOUBLE_TO_JSVAL((jsdouble *)ATOM_ENTRY_KEY(entry));
cx->weakRoots.lastAtom = v;
JS_UNLOCK(cx, &state->lock);
return (JSAtom *)v;
failed_hash_add:
JS_UNLOCK(cx, &state->lock);
JS_ReportOutOfMemory(cx);
return NULL;
}
开发者ID:Web5design,项目名称:meguro,代码行数:52,代码来源:jsatom.cpp
示例16: evalcx
static JSBool
evalcx(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
JSString *str;
JSObject *sandbox;
JSContext *subcx;
const jschar *src;
size_t srclen;
JSBool ret = JS_FALSE;
char *name = NULL;
sandbox = NULL;
if(!JS_ConvertArguments(cx, argc, argv, "S / o", &str, &sandbox)) {
return JS_FALSE;
}
subcx = JS_NewContext(JS_GetRuntime(cx), 8L * 1024L);
if(!subcx) {
JS_ReportOutOfMemory(cx);
return JS_FALSE;
}
SETUP_REQUEST(subcx);
src = JS_GetStringChars(str);
srclen = JS_GetStringLength(str);
if(!sandbox) {
sandbox = JS_NewObject(subcx, NULL, NULL, NULL);
if(!sandbox || !JS_InitStandardClasses(subcx, sandbox)) {
goto done;
}
}
if(argc > 2) {
name = enc_string(cx, argv[2], NULL);
}
if(srclen == 0) {
*rval = OBJECT_TO_JSVAL(sandbox);
} else {
JS_EvaluateUCScript(subcx, sandbox, src, srclen, name, 1, rval);
}
ret = JS_TRUE;
done:
if(name) JS_free(cx, name);
FINISH_REQUEST(subcx);
JS_DestroyContext(subcx);
return ret;
}
开发者ID:AvianFlu,项目名称:couchdb,代码行数:52,代码来源:sm170.c
示例17: js_AtomizeDouble
JSAtom *
js_AtomizeDouble(JSContext *cx, jsdouble d, uintN flags)
{
jsdouble *dp;
JSHashNumber keyHash;
jsval key;
JSAtomState *state;
JSHashTable *table;
JSHashEntry *he, **hep;
JSAtom *atom;
char buf[2 * ALIGNMENT(double)];
dp = ALIGN(buf, double);
*dp = d;
keyHash = HASH_DOUBLE(dp);
key = DOUBLE_TO_JSVAL(dp);
state = &cx->runtime->atomState;
JS_LOCK(&state->lock, cx);
table = state->table;
hep = JS_HashTableRawLookup(table, keyHash, (void *)key);
if ((he = *hep) == NULL) {
#ifdef JS_THREADSAFE
uint32 gen = state->tablegen;
#endif
JS_UNLOCK(&state->lock,cx);
if (!js_NewDoubleValue(cx, d, &key))
return NULL;
JS_LOCK(&state->lock, cx);
#ifdef JS_THREADSAFE
if (state->tablegen != gen) {
hep = JS_HashTableRawLookup(table, keyHash, (void *)key);
if ((he = *hep) != NULL) {
atom = (JSAtom *)he;
goto out;
}
}
#endif
he = JS_HashTableRawAdd(table, hep, keyHash, (void *)key, NULL);
if (!he) {
JS_ReportOutOfMemory(cx);
atom = NULL;
goto out;
}
}
atom = (JSAtom *)he;
atom->flags |= flags;
cx->lastAtom = atom;
out:
JS_UNLOCK(&state->lock,cx);
return atom;
}
开发者ID:Kitiara,项目名称:UOX3,代码行数:52,代码来源:jsatom.c
示例18: JS_ReportError
JSBool
JetpackChild::CallMessage(JSContext* cx, uintN argc, jsval* vp)
{
MessageResult smr;
if (!MessageCommon(cx, argc, vp, &smr))
return JS_FALSE;
InfallibleTArray<Variant> results;
if (!GetThis(cx)->CallCallMessage(smr.msgName, smr.data, &results)) {
JS_ReportError(cx, "Failed to callMessage");
return JS_FALSE;
}
nsAutoTArray<jsval, 4> jsvals;
jsval* rvals = jsvals.AppendElements(results.Length());
if (!rvals) {
JS_ReportOutOfMemory(cx);
return JS_FALSE;
}
for (PRUint32 i = 0; i < results.Length(); ++i)
rvals[i] = JSVAL_VOID;
js::AutoArrayRooter root(cx, results.Length(), rvals);
for (PRUint32 i = 0; i < results.Length(); ++i)
if (!jsval_from_Variant(cx, results.ElementAt(i), rvals + i)) {
JS_ReportError(cx, "Invalid result from handler %d", i);
return JS_FALSE;
}
JSObject* arrObj = JS_NewArrayObject(cx, results.Length(), rvals);
if (!arrObj) {
JS_ReportOutOfMemory(cx);
return JS_FALSE;
}
JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(arrObj));
return JS_TRUE;
}
开发者ID:krad-radio,项目名称:mozilla-krad,代码行数:38,代码来源:JetpackChild.cpp
示例19: GPSEE_CLASS_NAME
JSObject *query_InitObject(JSContext *cx, JSObject *moduleObject)
{
JSObject *queryObject;
query_private_t *hnd;
static JSClass query_class = /* not exposed to JS, but finalizer needed when GC */
{
GPSEE_CLASS_NAME(Query),
JSCLASS_HAS_PRIVATE,
JS_PropertyStub,
JS_PropertyStub,
JS_PropertyStub,
JS_PropertyStub,
JS_EnumerateStub,
JS_ResolveStub,
JS_ConvertStub,
query_Finalize,
JSCLASS_NO_OPTIONAL_MEMBERS
};
static JSFunctionSpec query_methods[] =
{
{ "readQuery", query_readQuery, 2, 0, 0 },
{ NULL, NULL, 0, 0, 0 }
};
static JSPropertySpec query_props[] =
{
{ NULL, 0, 0, NULL, NULL }
};
queryObject = JS_NewObject(cx, &query_class, NULL, moduleObject);
if (!queryObject)
return NULL;
if (!JS_DefineFunctions(cx, queryObject, query_methods) || !JS_DefineProperties(cx, queryObject, query_props))
return NULL;
hnd = JS_malloc(cx, sizeof(*hnd));
if (!hnd)
{
JS_ReportOutOfMemory(cx);
return NULL;
}
memset(hnd, 0, sizeof(*hnd));
JS_SetPrivate(cx, queryObject, hnd);
return queryObject;
}
开发者ID:wesgarland,项目名称:gpsee,代码行数:50,代码来源:query_object.c
示例20: js_SetContextThread
/*
* Sets current thread as owning thread of a context by assigning the
* thread-private info to the context. If the current thread doesn't have
* private JSThread info, create one.
*/
JSBool
js_SetContextThread(JSContext *cx)
{
JSThread *thread = js_GetCurrentThread(cx->runtime);
if (!thread) {
JS_ReportOutOfMemory(cx);
return JS_FALSE;
}
cx->thread = thread;
JS_REMOVE_LINK(&cx->threadLinks);
JS_APPEND_LINK(&cx->threadLinks, &thread->contextList);
return JS_TRUE;
}
开发者ID:ku,项目名称:uimonkey,代码行数:19,代码来源:jscntxt.c
注:本文中的JS_ReportOutOfMemory函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论