Title: [167968] trunk/Source/WebKit2
- Revision
- 167968
- Author
- m...@apple.com
- Date
- 2014-04-29 16:40:49 -0700 (Tue, 29 Apr 2014)
Log Message
<rdar://problem/16745596> [Cocoa] Crash when invoking a method with an unsigned parameter on a remote object
https://bugs.webkit.org/show_bug.cgi?id=132366
Reviewed by Anders Carlsson.
* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(encodeInvocation): Handle the 'I' type code. Interpret the 'q' and 'Q' type codes in an
architecture-independent manner.
(decodeInvocationArguments): Ditto.
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (167967 => 167968)
--- trunk/Source/WebKit2/ChangeLog 2014-04-29 23:34:29 UTC (rev 167967)
+++ trunk/Source/WebKit2/ChangeLog 2014-04-29 23:40:49 UTC (rev 167968)
@@ -1,3 +1,15 @@
+2014-04-29 Dan Bernstein <m...@apple.com>
+
+ <rdar://problem/16745596> [Cocoa] Crash when invoking a method with an unsigned parameter on a remote object
+ https://bugs.webkit.org/show_bug.cgi?id=132366
+
+ Reviewed by Anders Carlsson.
+
+ * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
+ (encodeInvocation): Handle the 'I' type code. Interpret the 'q' and 'Q' type codes in an
+ architecture-independent manner.
+ (decodeInvocationArguments): Ditto.
+
2014-04-29 Roger Fong <roger_f...@apple.com>
Don't immediately snapshot plugin to allow for proper dominant plugin detection.
Modified: trunk/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectCoder.mm (167967 => 167968)
--- trunk/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectCoder.mm 2014-04-29 23:34:29 UTC (rev 167967)
+++ trunk/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectCoder.mm 2014-04-29 23:40:49 UTC (rev 167968)
@@ -146,6 +146,15 @@
break;
}
+ // unsigned
+ case 'I': {
+ unsigned value;
+ [invocation getArgument:&value atIndex:i];
+
+ encodeToObjectStream(encoder, @(value));
+ break;
+ }
+
// char
case 'c': {
char value;
@@ -164,18 +173,18 @@
break;
}
- // NSInteger
+ // long
case 'q': {
- NSInteger value;
+ long value;
[invocation getArgument:&value atIndex:i];
encodeToObjectStream(encoder, @(value));
break;
}
- // NSUInteger
+ // unsigned long
case 'Q': {
- NSUInteger value;
+ unsigned long value;
[invocation getArgument:&value atIndex:i];
encodeToObjectStream(encoder, @(value));
@@ -421,6 +430,13 @@
break;
}
+ // unsigned
+ case 'I': {
+ unsigned value = [decodeObjectFromObjectStream(decoder, [NSSet setWithObject:[NSNumber class]]) unsignedIntValue];
+ [invocation setArgument:&value atIndex:i];
+ break;
+ }
+
// char
case 'c': {
char value = [decodeObjectFromObjectStream(decoder, [NSSet setWithObject:[NSNumber class]]) charValue];
@@ -435,16 +451,16 @@
break;
}
- // NSInteger
+ // long
case 'q': {
- NSInteger value = [decodeObjectFromObjectStream(decoder, [NSSet setWithObject:[NSNumber class]]) integerValue];
+ long value = [decodeObjectFromObjectStream(decoder, [NSSet setWithObject:[NSNumber class]]) longValue];
[invocation setArgument:&value atIndex:i];
break;
}
- // NSUInteger
+ // unsigned long
case 'Q': {
- NSUInteger value = [decodeObjectFromObjectStream(decoder, [NSSet setWithObject:[NSNumber class]]) unsignedIntegerValue];
+ unsigned long value = [decodeObjectFromObjectStream(decoder, [NSSet setWithObject:[NSNumber class]]) unsignedLongValue];
[invocation setArgument:&value atIndex:i];
break;
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes