REGRESSION (r242908): 'NSInvalidArgumentException', reason: '+[PKPaymentMerchantSess...
authortimothy@apple.com <timothy@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 14 Mar 2019 01:40:05 +0000 (01:40 +0000)
committertimothy@apple.com <timothy@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 14 Mar 2019 01:40:05 +0000 (01:40 +0000)
https://bugs.webkit.org/show_bug.cgi?id=195720

Reviewed by Andy Estes.

Add back decode(Decoder& decoder, Class allowedClass) for Apple Pay code.

* Shared/Cocoa/ArgumentCodersCocoa.h:
(IPC::decode): Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@242930 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/ChangeLog
Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.h

index 3212db8..af58072 100644 (file)
@@ -1,3 +1,15 @@
+2019-03-13  Timothy Hatcher  <timothy@apple.com>
+
+        REGRESSION (r242908):  'NSInvalidArgumentException', reason: '+[PKPaymentMerchantSession count]: unrecognized selector sent to class 0x1c0fae060'
+        https://bugs.webkit.org/show_bug.cgi?id=195720
+
+        Reviewed by Andy Estes.
+
+        Add back decode(Decoder& decoder, Class allowedClass) for Apple Pay code.
+
+        * Shared/Cocoa/ArgumentCodersCocoa.h:
+        (IPC::decode): Added.
+
 2019-03-13  Tim Horton  <timothy_horton@apple.com>
 
         Stop using some deprecated SPI in WKDrawingView
index 31d05ba..6d6151c 100644 (file)
@@ -39,6 +39,7 @@ template<typename T> using IsObjCObject = std::enable_if_t<std::is_convertible<T
 template<typename T, typename = IsObjCObject<T>> void encode(Encoder&, T *);
 template<typename T, typename = IsObjCObject<T>> bool decode(Decoder&, RetainPtr<T>&, NSArray<Class> *allowedClasses = @[ [T class] ]);
 template<typename T, typename = IsObjCObject<T>> Optional<RetainPtr<T>> decode(Decoder&, NSArray<Class> *allowedClasses = @[ [T class] ]);
+template<typename T, typename = IsObjCObject<T>> Optional<RetainPtr<T>> decode(Decoder&, Class allowedClass);
 
 #ifndef NDEBUG
 
@@ -80,6 +81,12 @@ Optional<RetainPtr<T>> decode(Decoder& decoder, NSArray<Class> *allowedClasses)
     return { *result };
 }
 
+template<typename T, typename>
+Optional<RetainPtr<T>> decode(Decoder& decoder, Class allowedClass)
+{
+    return decode<T>(decoder, @[ allowedClass ]);
+}
+
 template<typename T> struct ArgumentCoder<T *> {
     template<typename U = T, typename = IsObjCObject<U>>
     static void encode(Encoder& encoder, U *object)