20 #ifndef INCLUDED_OBJECTTOIDMAP 21 #define INCLUDED_OBJECTTOIDMAP 31 typedef js::PointerHasher<JSObject*, 3>
Hasher;
32 typedef js::HashMap<JSObject*, T, Hasher, js::SystemAllocPolicy>
Table;
64 for (
typename Table::Enum e(*
table_); !e.empty(); e.popFront())
66 JSObject* obj = e.front().key();
67 JS_CallUnbarrieredObjectTracer(trc, &obj,
"ipc-object");
68 if (obj != e.front().key())
75 bool find(JSObject* obj,
T& ret)
77 typename Table::Ptr p =
table_->lookup(obj);
84 bool add(JSContext* cx, JSObject* obj,
T id)
92 void remove(JSObject* obj)
112 Table* table =
static_cast<Table*
>(data);
113 JSObject* prior =
key;
114 JS_CallUnbarrieredObjectTracer(trc, &key,
"ObjectIdCache::table_ key");
115 table->rekeyIfMoved(prior, key);
118 static void Trace(JSTracer* trc,
void* data)
125 delete (Table*)table;
128 shared_ptr<ScriptRuntime>
m_rt;
132 #endif // INCLUDED_OBJECTTOIDMAP ObjectIdCache(shared_ptr< ScriptRuntime > rt)
Definition: ObjectToIDMap.h:37
NONCOPYABLE(ObjectIdCache)
~ObjectIdCache()
Definition: ObjectToIDMap.h:42
void trace(JSTracer *trc)
Definition: ObjectToIDMap.h:62
bool init()
Definition: ObjectToIDMap.h:52
shared_ptr< ScriptRuntime > m_rt
Definition: ObjectToIDMap.h:128
bool has(JSObject *obj)
Definition: ObjectToIDMap.h:104
bool add(JSContext *cx, JSObject *obj, T id)
Definition: ObjectToIDMap.h:84
bool empty()
Definition: ObjectToIDMap.h:99
static void keyMarkCallback(JSTracer *trc, JSObject *key, void *data)
Definition: ObjectToIDMap.h:110
static void Trace(JSTracer *trc, void *data)
Definition: ObjectToIDMap.h:118
js::HashMap< JSObject *, T, Hasher, js::SystemAllocPolicy > Table
Definition: ObjectToIDMap.h:32
pthread_key_t key
Definition: wpthread.cpp:140
#define T(string_literal)
Definition: secure_crt.cpp:76
static void DeleteTable(void *table)
Definition: ObjectToIDMap.h:123
bool find(JSObject *obj, T &ret)
Definition: ObjectToIDMap.h:75
Table * table_
Definition: ObjectToIDMap.h:129
js::PointerHasher< JSObject *, 3 > Hasher
Definition: ObjectToIDMap.h:31
Providing a map-like structure with JSObject pointers (actually their hash) as keys with correct garb...
Definition: ObjectToIDMap.h:29