Changeset 167173 in webkit
- Timestamp:
- Apr 11, 2014 5:19:24 PM (10 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r167172 r167173 1 2014-04-11 Brian J. Burg <burg@cs.washington.edu> 2 3 Web Replay: consolidate decoding macros used in SerializationMethods 4 https://bugs.webkit.org/show_bug.cgi?id=131564 5 6 Reviewed by Timothy Hatcher. 7 8 We can use EncodingTraits<T>::DecodedType to create a local variable 9 with the appropriate decoded type, rather than special casing. 10 11 * replay/SerializationMethods.cpp: 12 (JSC::EncodingTraits<NondeterministicInputBase>::decodeValue): 13 (JSC::EncodingTraits<KeypressCommand>::decodeValue): 14 (JSC::EncodingTraits<PlatformKeyboardEvent>::decodeValue): 15 (JSC::EncodingTraits<PlatformMouseEvent>::decodeValue): 16 (JSC::EncodingTraits<PlatformWheelEvent>::decodeValue): 17 (JSC::EncodingTraits<PluginData>::decodeValue): 18 1 19 2014-04-11 Beth Dakin <bdakin@apple.com> 2 20 -
trunk/Source/WebCore/replay/SerializationMethods.cpp
r167085 r167173 127 127 return false 128 128 129 #define DECODE_TYPE_WITH_KEY(_encodedValue, _type, _key) \ 130 EncodingTraits<_type>::DecodedType _key; \ 131 DECODE_TYPE_WITH_KEY_TO_LVALUE(_encodedValue, _type, _key, _key) 132 129 133 #define DECODE_OPTIONAL_TYPE_WITH_KEY_TO_LVALUE(_encodedValue, _type, _key, _lvalue) \ 130 134 bool _key ## WasDecoded = _encodedValue.get<_type>(ASCIILiteral(#_key), _lvalue) 131 135 132 #define DECODE_REFCOUNTED_TYPE_WITH_KEY(_encodedValue, _type, _key) \ 133 RefPtr<_type> _key; \ 134 DECODE_TYPE_WITH_KEY_TO_LVALUE(_encodedValue, _type, _key, _key) 135 136 #define DECODE_UNIQUE_TYPE_WITH_KEY(_encodedValue, _type, _key) \ 137 std::unique_ptr<_type> _key; \ 138 DECODE_TYPE_WITH_KEY_TO_LVALUE(_encodedValue, _type, _key, _key) 139 140 #define DECODE_SCALAR_TYPE_WITH_KEY(_encodedValue, _type, _key) \ 141 _type _key; \ 142 DECODE_TYPE_WITH_KEY_TO_LVALUE(_encodedValue, _type, _key, _key) 143 144 #define DECODE_OPTIONAL_SCALAR_TYPE_WITH_KEY(_encodedValue, _type, _key) \ 145 _type _key; \ 146 DECODE_OPTIONAL_TYPE_WITH_KEY_TO_LVALUE(_encodedValue, _type, _key, _key) 147 148 #define DECODE_OPTIONAL_REFCOUNTED_TYPE_WITH_KEY(_encodedValue, _type, _key) \ 149 RefPtr<_type> _key; \ 136 #define DECODE_OPTIONAL_TYPE_WITH_KEY(_encodedValue, _type, _key) \ 137 EncodingTraits<_type>::DecodedType _key; \ 150 138 DECODE_OPTIONAL_TYPE_WITH_KEY_TO_LVALUE(_encodedValue, _type, _key, _key) 151 139 … … 206 194 bool EncodingTraits<NondeterministicInputBase>::decodeValue(EncodedValue& encodedValue, std::unique_ptr<NondeterministicInputBase>& input) 207 195 { 208 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, String, type);196 DECODE_TYPE_WITH_KEY(encodedValue, String, type); 209 197 210 198 #define DECODE_IF_TYPE_TAG_MATCHES(name) \ … … 247 235 bool EncodingTraits<KeypressCommand>::decodeValue(EncodedValue& encodedValue, KeypressCommand& decodedValue) 248 236 { 249 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, String, commandName);250 DECODE_OPTIONAL_ SCALAR_TYPE_WITH_KEY(encodedValue, String, text);237 DECODE_TYPE_WITH_KEY(encodedValue, String, commandName); 238 DECODE_OPTIONAL_TYPE_WITH_KEY(encodedValue, String, text); 251 239 252 240 decodedValue = textWasDecoded ? KeypressCommand(commandName, text) : KeypressCommand(commandName); … … 290 278 bool EncodingTraits<PlatformKeyboardEvent>::decodeValue(EncodedValue& encodedValue, std::unique_ptr<PlatformKeyboardEvent>& input) 291 279 { 292 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, double, timestamp);293 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, PlatformEvent::Type, type);294 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, PlatformEvent::Modifiers, modifiers);295 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, String, text);296 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, String, unmodifiedText);297 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, String, keyIdentifier);298 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, int, windowsVirtualKeyCode);299 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, int, nativeVirtualKeyCode);300 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, int, macCharCode);301 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, bool, autoRepeat);302 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, bool, keypad);303 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, bool, systemKey);280 DECODE_TYPE_WITH_KEY(encodedValue, double, timestamp); 281 DECODE_TYPE_WITH_KEY(encodedValue, PlatformEvent::Type, type); 282 DECODE_TYPE_WITH_KEY(encodedValue, PlatformEvent::Modifiers, modifiers); 283 DECODE_TYPE_WITH_KEY(encodedValue, String, text); 284 DECODE_TYPE_WITH_KEY(encodedValue, String, unmodifiedText); 285 DECODE_TYPE_WITH_KEY(encodedValue, String, keyIdentifier); 286 DECODE_TYPE_WITH_KEY(encodedValue, int, windowsVirtualKeyCode); 287 DECODE_TYPE_WITH_KEY(encodedValue, int, nativeVirtualKeyCode); 288 DECODE_TYPE_WITH_KEY(encodedValue, int, macCharCode); 289 DECODE_TYPE_WITH_KEY(encodedValue, bool, autoRepeat); 290 DECODE_TYPE_WITH_KEY(encodedValue, bool, keypad); 291 DECODE_TYPE_WITH_KEY(encodedValue, bool, systemKey); 304 292 #if USE(APPKIT) 305 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, bool, handledByInputMethod);306 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, Vector<KeypressCommand>, commands);293 DECODE_TYPE_WITH_KEY(encodedValue, bool, handledByInputMethod); 294 DECODE_TYPE_WITH_KEY(encodedValue, Vector<KeypressCommand>, commands); 307 295 #endif 308 296 … … 338 326 bool EncodingTraits<PlatformMouseEvent>::decodeValue(EncodedValue& encodedValue, std::unique_ptr<PlatformMouseEvent>& input) 339 327 { 340 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, int, positionX);341 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, int, positionY);342 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, int, globalPositionX);343 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, int, globalPositionY);344 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, MouseButton, button);345 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, PlatformEvent::Type, type);346 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, int, clickCount);347 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, bool, shiftKey);348 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, bool, ctrlKey);349 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, bool, altKey);350 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, bool, metaKey);351 DECODE_ SCALAR_TYPE_WITH_KEY(encodedValue, int, timestamp);328 DECODE_TYPE_WITH_KEY(encodedValue, int, positionX); 329 DECODE_TYPE_WITH_KEY(encodedValue, int, positionY); 330 DECODE_TYPE_WITH_KEY(encodedValue, int, globalPositionX); 331 DECODE_TYPE_WITH_KEY(encodedValue, int, globalPositionY); 332 DECODE_TYPE_WITH_KEY(encodedValue, MouseButton, button); 333 DECODE_TYPE_WITH_KEY(encodedValue, PlatformEvent::Type, type); 334 DECODE_TYPE_WITH_KEY(encodedValue, int, clickCount); 335 DECODE_TYPE_WITH_KEY(encodedValue, bool, shiftKey); 336 DECODE_TYPE_WITH_KEY(encodedValue, bool, ctrlKey); 337 DECODE_TYPE_WITH_KEY(encodedValue, bool, altKey); 338 DECODE_TYPE_WITH_KEY(encodedValue, bool, metaKey); 339 DECODE_TYPE_WITH_KEY(encodedValue, int, timestamp); 352 340 353 341 input = std::make_unique<PlatformMouseEvent>(IntPoint(positionX, positionY), … … 418 406 bool EncodingTraits<PlatformWheelEvent>::decodeValue(EncodedValue& encodedData, std::unique_ptr<PlatformWheelEvent>& input) 419 407 { 420 DECODE_ SCALAR_TYPE_WITH_KEY(encodedData, int, positionX);421 DECODE_ SCALAR_TYPE_WITH_KEY(encodedData, int, positionY);422 DECODE_ SCALAR_TYPE_WITH_KEY(encodedData, int, globalPositionX);423 DECODE_ SCALAR_TYPE_WITH_KEY(encodedData, int, globalPositionY);424 DECODE_ SCALAR_TYPE_WITH_KEY(encodedData, bool, shiftKey);425 DECODE_ SCALAR_TYPE_WITH_KEY(encodedData, bool, ctrlKey);426 DECODE_ SCALAR_TYPE_WITH_KEY(encodedData, bool, altKey);427 DECODE_ SCALAR_TYPE_WITH_KEY(encodedData, bool, metaKey);428 DECODE_ SCALAR_TYPE_WITH_KEY(encodedData, float, deltaX);429 DECODE_ SCALAR_TYPE_WITH_KEY(encodedData, float, deltaY);430 DECODE_ SCALAR_TYPE_WITH_KEY(encodedData, float, wheelTicksX);431 DECODE_ SCALAR_TYPE_WITH_KEY(encodedData, float, wheelTicksY);432 DECODE_ SCALAR_TYPE_WITH_KEY(encodedData, PlatformWheelEventGranularity, granularity);408 DECODE_TYPE_WITH_KEY(encodedData, int, positionX); 409 DECODE_TYPE_WITH_KEY(encodedData, int, positionY); 410 DECODE_TYPE_WITH_KEY(encodedData, int, globalPositionX); 411 DECODE_TYPE_WITH_KEY(encodedData, int, globalPositionY); 412 DECODE_TYPE_WITH_KEY(encodedData, bool, shiftKey); 413 DECODE_TYPE_WITH_KEY(encodedData, bool, ctrlKey); 414 DECODE_TYPE_WITH_KEY(encodedData, bool, altKey); 415 DECODE_TYPE_WITH_KEY(encodedData, bool, metaKey); 416 DECODE_TYPE_WITH_KEY(encodedData, float, deltaX); 417 DECODE_TYPE_WITH_KEY(encodedData, float, deltaY); 418 DECODE_TYPE_WITH_KEY(encodedData, float, wheelTicksX); 419 DECODE_TYPE_WITH_KEY(encodedData, float, wheelTicksY); 420 DECODE_TYPE_WITH_KEY(encodedData, PlatformWheelEventGranularity, granularity); 433 421 434 422 #if PLATFORM(COCOA) … … 475 463 bool EncodingTraits<PluginData>::decodeValue(EncodedValue& encodedData, RefPtr<PluginData>& input) 476 464 { 477 DECODE_ SCALAR_TYPE_WITH_KEY(encodedData, Vector<PluginInfo>, plugins);478 DECODE_ SCALAR_TYPE_WITH_KEY(encodedData, Vector<MimeClassInfo>, mimes);479 DECODE_ SCALAR_TYPE_WITH_KEY(encodedData, Vector<size_t>, mimePluginIndices);465 DECODE_TYPE_WITH_KEY(encodedData, Vector<PluginInfo>, plugins); 466 DECODE_TYPE_WITH_KEY(encodedData, Vector<MimeClassInfo>, mimes); 467 DECODE_TYPE_WITH_KEY(encodedData, Vector<size_t>, mimePluginIndices); 480 468 481 469 input = adoptRef(new DeserializedPluginData(plugins, mimes, mimePluginIndices));
Note: See TracChangeset
for help on using the changeset viewer.