Changeset 50964 in webkit for trunk/JavaScriptCore/API
- Timestamp:
- Nov 13, 2009, 12:42:16 PM (16 years ago)
- Location:
- trunk/JavaScriptCore/API
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/API/APICast.h
r49802 r50964 74 74 } 75 75 76 inline JSC::JSValue toJSForGC(JSC::ExecState*, JSValueRef v) 77 { 78 #if USE(JSVALUE32_64) 79 JSC::JSCell* jsCell = reinterpret_cast<JSC::JSCell*>(const_cast<OpaqueJSValue*>(v)); 80 if (!jsCell) 81 return JSC::JSValue(); 82 return jsCell; 83 #else 84 return JSC::JSValue::decode(reinterpret_cast<JSC::EncodedJSValue>(const_cast<OpaqueJSValue*>(v))); 85 #endif 86 } 87 76 88 inline JSC::JSObject* toJS(JSObjectRef o) 77 89 { -
trunk/JavaScriptCore/API/JSValueRef.cpp
r43160 r50964 308 308 JSLock lock(exec); 309 309 310 JSValue jsValue = toJS (exec, value);310 JSValue jsValue = toJSForGC(exec, value); 311 311 gcProtect(jsValue); 312 312 } … … 318 318 JSLock lock(exec); 319 319 320 JSValue jsValue = toJS (exec, value);320 JSValue jsValue = toJSForGC(exec, value); 321 321 gcUnprotect(jsValue); 322 322 } -
trunk/JavaScriptCore/API/tests/testapi.c
r49802 r50964 738 738 } 739 739 740 static JSValueRef jsNumberValue = NULL; 741 742 static void makeGlobalNumberValue(JSContextRef context) { 743 JSValueRef v = JSValueMakeNumber(context, 420); 744 JSValueProtect(context, v); 745 jsNumberValue = v; 746 v = NULL; 747 } 748 740 749 int main(int argc, char* argv[]) 741 750 { … … 949 958 950 959 jsGlobalValue = JSObjectMake(context, NULL, NULL); 960 makeGlobalNumberValue(context); 951 961 JSValueProtect(context, jsGlobalValue); 952 962 JSGarbageCollect(context); 953 963 ASSERT(JSValueIsObject(context, jsGlobalValue)); 954 964 JSValueUnprotect(context, jsGlobalValue); 965 JSValueUnprotect(context, jsNumberValue); 955 966 956 967 JSStringRef goodSyntax = JSStringCreateWithUTF8CString("x = 1;");
Note:
See TracChangeset
for help on using the changeset viewer.