Example #1
0
void TraceHeap(JSTracer* tracer, JS::Heap<JS::Value>* val, const char* parentName, const char* name) {
  if (val != NULL) {
    __android_log_print(ANDROID_LOG_DEBUG, LOG_COMPONENT, " Trace: %s %s\n", parentName, name);
    JS_CallValueTracer(tracer, val, name);
    __android_log_print(ANDROID_LOG_DEBUG, LOG_COMPONENT, " Traced: %s %s\n", parentName, name);
  }
}
Example #2
0
static void
trace_foreach(void *key,
              void *value,
              void *data)
{
    Child *child = (Child *) value;
    JSTracer *tracer = (JSTracer *) data;

    if (child->child != NULL) {
        JS::Value val;
        val = JS::ObjectValue(*(child->child));
        JS_CallValueTracer(tracer, &val, "keep-alive::val");
    }
}
Example #3
0
static void
trace_foreach(void *key,
              void *value,
              void *data)
{
    Child *child = (Child *) value;
    JSTracer *tracer = (JSTracer *) data;

    if (child->child != NULL) {
        jsval val;
        JS_SET_TRACING_DETAILS(tracer, NULL, "keep-alive", 0);
        val = OBJECT_TO_JSVAL(child->child);
        g_assert (JSVAL_TO_TRACEABLE (val));
        JS_CallValueTracer(tracer, &val, "keep-alive::val");
    }
}