Changeset 139735 in webkit
- Timestamp:
- Jan 15, 2013 5:49:57 AM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r139734 r139735 1 2013-01-14 Kentaro Hara <haraken@chromium.org> 2 3 [V8] Make an Isolate parameter mandatory in SerializedScriptValue methods 4 https://bugs.webkit.org/show_bug.cgi?id=106800 5 6 Reviewed by Adam Barth. 7 8 SerializedScriptValue methods are used by both V8 bindings 9 and WebCore. So they should support both an Isolate-version 10 method and an non-Isolate version method. 11 12 There are two ways to accomplish that: 13 14 [1] Use an optional Isolate parameter. 15 16 [2] Implement two versions and delegate the non-Isolate 17 version method to the Isolate version method. 18 19 I would prefer the approach [2], because I'd like to statically 20 make sure that we never pass a 0 Isolate. If we take the approach 21 [1], we need to insert ASSERT(isolate) here and there. 22 23 This patch implements the approach [2]. 24 25 No tests. No change in behavior. 26 27 * bindings/v8/SerializedScriptValue.cpp: 28 (WebCore::SerializedScriptValue::create): 29 (WebCore): 30 (WebCore::SerializedScriptValue::nullValue): 31 (WebCore::SerializedScriptValue::undefinedValue): 32 (WebCore::SerializedScriptValue::booleanValue): 33 (WebCore::SerializedScriptValue::numberValue): 34 (WebCore::SerializedScriptValue::SerializedScriptValue): 35 * bindings/v8/SerializedScriptValue.h: 36 (SerializedScriptValue): 37 1 38 2013-01-15 Dongwoo Joshua Im <dw.im@samsung.com> 2 39 -
trunk/Source/WebCore/bindings/v8/SerializedScriptValue.cpp
r137954 r139735 2232 2232 } // namespace 2233 2233 2234 PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(v8::Handle<v8::Value> value, 2235 MessagePortArray* messagePorts, ArrayBufferArray* arrayBuffers, 2236 bool& didThrow, 2237 v8::Isolate* isolate) 2234 PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(v8::Handle<v8::Value> value, MessagePortArray* messagePorts, ArrayBufferArray* arrayBuffers, bool& didThrow) 2235 { 2236 return create(value, messagePorts, arrayBuffers, didThrow, v8::Isolate::GetCurrent()); 2237 } 2238 2239 PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(v8::Handle<v8::Value> value, MessagePortArray* messagePorts, ArrayBufferArray* arrayBuffers, bool& didThrow, v8::Isolate* isolate) 2238 2240 { 2239 2241 return adoptRef(new SerializedScriptValue(value, messagePorts, arrayBuffers, didThrow, isolate)); 2242 } 2243 2244 PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(v8::Handle<v8::Value> value) 2245 { 2246 return create(value, v8::Isolate::GetCurrent()); 2240 2247 } 2241 2248 … … 2265 2272 } 2266 2273 2274 PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(const String& data) 2275 { 2276 return create(data, v8::Isolate::GetCurrent()); 2277 } 2278 2267 2279 PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(const String& data, v8::Isolate* isolate) 2268 2280 { … … 2278 2290 } 2279 2291 2292 PassRefPtr<SerializedScriptValue> SerializedScriptValue::nullValue() 2293 { 2294 return nullValue(v8::Isolate::GetCurrent()); 2295 } 2296 2280 2297 PassRefPtr<SerializedScriptValue> SerializedScriptValue::nullValue(v8::Isolate* isolate) 2281 2298 { … … 2286 2303 } 2287 2304 2305 PassRefPtr<SerializedScriptValue> SerializedScriptValue::undefinedValue() 2306 { 2307 return undefinedValue(v8::Isolate::GetCurrent()); 2308 } 2309 2288 2310 PassRefPtr<SerializedScriptValue> SerializedScriptValue::undefinedValue(v8::Isolate* isolate) 2289 2311 { … … 2292 2314 String wireData = StringImpl::adopt(writer.data()); 2293 2315 return adoptRef(new SerializedScriptValue(wireData)); 2316 } 2317 2318 PassRefPtr<SerializedScriptValue> SerializedScriptValue::booleanValue(bool value) 2319 { 2320 return booleanValue(value, v8::Isolate::GetCurrent()); 2294 2321 } 2295 2322 … … 2305 2332 } 2306 2333 2334 PassRefPtr<SerializedScriptValue> SerializedScriptValue::numberValue(double value) 2335 { 2336 return numberValue(value, v8::Isolate::GetCurrent()); 2337 } 2338 2307 2339 PassRefPtr<SerializedScriptValue> SerializedScriptValue::numberValue(double value, v8::Isolate* isolate) 2308 2340 { … … 2384 2416 } 2385 2417 2386 SerializedScriptValue::SerializedScriptValue(v8::Handle<v8::Value> value, 2387 MessagePortArray* messagePorts, ArrayBufferArray* arrayBuffers, 2388 bool& didThrow, 2389 v8::Isolate* isolate) 2418 SerializedScriptValue::SerializedScriptValue(v8::Handle<v8::Value> value, MessagePortArray* messagePorts, ArrayBufferArray* arrayBuffers, bool& didThrow, v8::Isolate* isolate) 2390 2419 : m_externallyAllocatedMemory(0) 2391 2420 { -
trunk/Source/WebCore/bindings/v8/SerializedScriptValue.h
r137954 r139735 53 53 // the caller must not invoke any V8 operations until control returns to 54 54 // V8. When serialization is successful, |didThrow| is false. 55 static PassRefPtr<SerializedScriptValue> create(v8::Handle<v8::Value>, 56 MessagePortArray*, ArrayBufferArray*, 57 bool& didThrow, v8::Isolate* = 0); 58 static PassRefPtr<SerializedScriptValue> create(v8::Handle<v8::Value>, v8::Isolate* = 0); 59 static PassRefPtr<SerializedScriptValue> createFromWire(const String& data); 60 static PassRefPtr<SerializedScriptValue> createFromWireBytes(const Vector<uint8_t>& data); 61 static PassRefPtr<SerializedScriptValue> create(const String& data, v8::Isolate* = 0); 55 static PassRefPtr<SerializedScriptValue> create(v8::Handle<v8::Value>, MessagePortArray*, ArrayBufferArray*, bool&); 56 static PassRefPtr<SerializedScriptValue> create(v8::Handle<v8::Value>, MessagePortArray*, ArrayBufferArray*, bool&, v8::Isolate*); 57 static PassRefPtr<SerializedScriptValue> create(v8::Handle<v8::Value>); 58 static PassRefPtr<SerializedScriptValue> create(v8::Handle<v8::Value>, v8::Isolate*); 59 static PassRefPtr<SerializedScriptValue> createFromWire(const String&); 60 static PassRefPtr<SerializedScriptValue> createFromWireBytes(const Vector<uint8_t>&); 61 static PassRefPtr<SerializedScriptValue> create(const String&); 62 static PassRefPtr<SerializedScriptValue> create(const String&, v8::Isolate*); 62 63 static PassRefPtr<SerializedScriptValue> create(); 63 64 64 static PassRefPtr<SerializedScriptValue> nullValue(v8::Isolate* = 0); 65 static PassRefPtr<SerializedScriptValue> undefinedValue(v8::Isolate* = 0); 66 static PassRefPtr<SerializedScriptValue> booleanValue(bool value, v8::Isolate* = 0); 67 static PassRefPtr<SerializedScriptValue> numberValue(double value, v8::Isolate* = 0); 65 static PassRefPtr<SerializedScriptValue> nullValue(); 66 static PassRefPtr<SerializedScriptValue> nullValue(v8::Isolate*); 67 static PassRefPtr<SerializedScriptValue> undefinedValue(); 68 static PassRefPtr<SerializedScriptValue> undefinedValue(v8::Isolate*); 69 static PassRefPtr<SerializedScriptValue> booleanValue(bool); 70 static PassRefPtr<SerializedScriptValue> booleanValue(bool, v8::Isolate*); 71 static PassRefPtr<SerializedScriptValue> numberValue(double); 72 static PassRefPtr<SerializedScriptValue> numberValue(double, v8::Isolate*); 68 73 69 74 static uint32_t wireFormatVersion();
Note: See TracChangeset
for help on using the changeset viewer.