ObjFW  Check-in [d6553b4578]

Overview
Comment:Add OFInvocation

Only support for storing an invocation, no support for invoking yet.

Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: d6553b457876be0be8b2ef1bc94350247a8454b66aebfb98374d07edcca8f28b
User & Date: js on 2017-09-10 22:32:56
Other Links: manifest | tags
Context
2017-09-11
02:05
OFInvocation: Initial support for invoking check-in: 95797a4d1c user: js tags: trunk
2017-09-10
22:32
Add OFInvocation check-in: d6553b4578 user: js tags: trunk
21:04
Set AUTO{CONF,MAKE}_VERSION for OpenBSD check-in: bedfe5a994 user: js tags: trunk
Changes

Modified ObjFW.xcodeproj/project.pbxproj from [41f6cf9a9a] to [74b17c0262].

911
912
913
914
915
916
917






918
919
920
921
922
923
924
		4BA85BCB140ECCE800E91D51 /* OFCountedSet_hashtable.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BA85BC5140ECCE800E91D51 /* OFCountedSet_hashtable.m */; };
		4BA85BCC140ECCE800E91D51 /* OFMutableSet_hashtable.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BA85BC6140ECCE800E91D51 /* OFMutableSet_hashtable.h */; };
		4BA85BCD140ECCE800E91D51 /* OFMutableSet_hashtable.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BA85BC7140ECCE800E91D51 /* OFMutableSet_hashtable.m */; };
		4BA85BCE140ECCE800E91D51 /* OFSet_hashtable.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BA85BC8140ECCE800E91D51 /* OFSet_hashtable.h */; };
		4BA85BCF140ECCE800E91D51 /* OFSet_hashtable.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BA85BC9140ECCE800E91D51 /* OFSet_hashtable.m */; };
		4BA9CFA415E129D30076DC74 /* autorelease.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BA9CFA315E129D30076DC74 /* autorelease.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4BAA60C814D09699006F068D /* OFJSONTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BAA60C714D09699006F068D /* OFJSONTests.m */; };






		4BAE7354139C508E00F682ED /* serialization.xml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4BAE7353139C507F00F682ED /* serialization.xml */; };
		4BAFC168182EAA7800BE5E57 /* OFOptionsParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BAFC166182EAA7800BE5E57 /* OFOptionsParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4BAFC169182EAA7800BE5E57 /* OFOptionsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BAFC167182EAA7800BE5E57 /* OFOptionsParser.m */; };
		4BB25E88139C388A00F574EA /* OFObject+Serialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BB25E82139C388A00F574EA /* OFObject+Serialization.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4BB25E89139C388A00F574EA /* OFObject+Serialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BB25E83139C388A00F574EA /* OFObject+Serialization.m */; };
		4BB25E8A139C388A00F574EA /* OFString+Serialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BB25E84139C388A00F574EA /* OFString+Serialization.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4BB25E8B139C388A00F574EA /* OFString+Serialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BB25E85139C388A00F574EA /* OFString+Serialization.m */; };







>
>
>
>
>
>







911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
		4BA85BCB140ECCE800E91D51 /* OFCountedSet_hashtable.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BA85BC5140ECCE800E91D51 /* OFCountedSet_hashtable.m */; };
		4BA85BCC140ECCE800E91D51 /* OFMutableSet_hashtable.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BA85BC6140ECCE800E91D51 /* OFMutableSet_hashtable.h */; };
		4BA85BCD140ECCE800E91D51 /* OFMutableSet_hashtable.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BA85BC7140ECCE800E91D51 /* OFMutableSet_hashtable.m */; };
		4BA85BCE140ECCE800E91D51 /* OFSet_hashtable.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BA85BC8140ECCE800E91D51 /* OFSet_hashtable.h */; };
		4BA85BCF140ECCE800E91D51 /* OFSet_hashtable.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BA85BC9140ECCE800E91D51 /* OFSet_hashtable.m */; };
		4BA9CFA415E129D30076DC74 /* autorelease.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BA9CFA315E129D30076DC74 /* autorelease.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4BAA60C814D09699006F068D /* OFJSONTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BAA60C714D09699006F068D /* OFJSONTests.m */; };
		4BAD891F1F65E6B300CF44B7 /* OFInvocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BAD891E1F65E68800CF44B7 /* OFInvocation.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4BAD89201F65E6B300CF44B7 /* OFInvocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BAD891E1F65E68800CF44B7 /* OFInvocation.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4BAD89211F65E6B600CF44B7 /* OFInvocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BAD891D1F65E68800CF44B7 /* OFInvocation.m */; };
		4BAD89221F65E6B700CF44B7 /* OFInvocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BAD891D1F65E68800CF44B7 /* OFInvocation.m */; };
		4BAD89241F65E80A00CF44B7 /* OFInvocationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BAD89231F65E80A00CF44B7 /* OFInvocationTests.m */; };
		4BAD89251F65E80A00CF44B7 /* OFInvocationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BAD89231F65E80A00CF44B7 /* OFInvocationTests.m */; };
		4BAE7354139C508E00F682ED /* serialization.xml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4BAE7353139C507F00F682ED /* serialization.xml */; };
		4BAFC168182EAA7800BE5E57 /* OFOptionsParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BAFC166182EAA7800BE5E57 /* OFOptionsParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4BAFC169182EAA7800BE5E57 /* OFOptionsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BAFC167182EAA7800BE5E57 /* OFOptionsParser.m */; };
		4BB25E88139C388A00F574EA /* OFObject+Serialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BB25E82139C388A00F574EA /* OFObject+Serialization.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4BB25E89139C388A00F574EA /* OFObject+Serialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BB25E83139C388A00F574EA /* OFObject+Serialization.m */; };
		4BB25E8A139C388A00F574EA /* OFString+Serialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BB25E84139C388A00F574EA /* OFString+Serialization.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4BB25E8B139C388A00F574EA /* OFString+Serialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BB25E85139C388A00F574EA /* OFString+Serialization.m */; };
1610
1611
1612
1613
1614
1615
1616



1617
1618
1619
1620
1621
1622
1623
		4BA85BC6140ECCE800E91D51 /* OFMutableSet_hashtable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFMutableSet_hashtable.h; path = src/OFMutableSet_hashtable.h; sourceTree = "<group>"; };
		4BA85BC7140ECCE800E91D51 /* OFMutableSet_hashtable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFMutableSet_hashtable.m; path = src/OFMutableSet_hashtable.m; sourceTree = "<group>"; };
		4BA85BC8140ECCE800E91D51 /* OFSet_hashtable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFSet_hashtable.h; path = src/OFSet_hashtable.h; sourceTree = "<group>"; };
		4BA85BC9140ECCE800E91D51 /* OFSet_hashtable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFSet_hashtable.m; path = src/OFSet_hashtable.m; sourceTree = "<group>"; };
		4BA9CFA315E129D30076DC74 /* autorelease.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = autorelease.h; path = src/autorelease.h; sourceTree = "<group>"; };
		4BAA60C714D09699006F068D /* OFJSONTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFJSONTests.m; path = tests/OFJSONTests.m; sourceTree = "<group>"; };
		4BABC29A197A8212006A93BD /* threading_pthread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = threading_pthread.m; path = src/threading_pthread.m; sourceTree = "<group>"; };



		4BAE7353139C507F00F682ED /* serialization.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = serialization.xml; path = tests/serialization.xml; sourceTree = "<group>"; };
		4BAF5F46123460C900F4E111 /* OFCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFCollection.h; path = src/OFCollection.h; sourceTree = "<group>"; };
		4BAF5F49123460C900F4E111 /* OFStreamSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFStreamSocket.h; path = src/OFStreamSocket.h; sourceTree = "<group>"; };
		4BAF5F4A123460C900F4E111 /* OFStreamSocket.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFStreamSocket.m; path = src/OFStreamSocket.m; sourceTree = "<group>"; };
		4BAFC166182EAA7800BE5E57 /* OFOptionsParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFOptionsParser.h; path = src/OFOptionsParser.h; sourceTree = "<group>"; };
		4BAFC167182EAA7800BE5E57 /* OFOptionsParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFOptionsParser.m; path = src/OFOptionsParser.m; sourceTree = "<group>"; };
		4BB25E82139C388A00F574EA /* OFObject+Serialization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "OFObject+Serialization.h"; path = "src/OFObject+Serialization.h"; sourceTree = "<group>"; };







>
>
>







1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
		4BA85BC6140ECCE800E91D51 /* OFMutableSet_hashtable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFMutableSet_hashtable.h; path = src/OFMutableSet_hashtable.h; sourceTree = "<group>"; };
		4BA85BC7140ECCE800E91D51 /* OFMutableSet_hashtable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFMutableSet_hashtable.m; path = src/OFMutableSet_hashtable.m; sourceTree = "<group>"; };
		4BA85BC8140ECCE800E91D51 /* OFSet_hashtable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFSet_hashtable.h; path = src/OFSet_hashtable.h; sourceTree = "<group>"; };
		4BA85BC9140ECCE800E91D51 /* OFSet_hashtable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFSet_hashtable.m; path = src/OFSet_hashtable.m; sourceTree = "<group>"; };
		4BA9CFA315E129D30076DC74 /* autorelease.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = autorelease.h; path = src/autorelease.h; sourceTree = "<group>"; };
		4BAA60C714D09699006F068D /* OFJSONTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFJSONTests.m; path = tests/OFJSONTests.m; sourceTree = "<group>"; };
		4BABC29A197A8212006A93BD /* threading_pthread.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = threading_pthread.m; path = src/threading_pthread.m; sourceTree = "<group>"; };
		4BAD891D1F65E68800CF44B7 /* OFInvocation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = OFInvocation.m; path = src/OFInvocation.m; sourceTree = "<group>"; };
		4BAD891E1F65E68800CF44B7 /* OFInvocation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = OFInvocation.h; path = src/OFInvocation.h; sourceTree = "<group>"; };
		4BAD89231F65E80A00CF44B7 /* OFInvocationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFInvocationTests.m; path = tests/OFInvocationTests.m; sourceTree = "<group>"; };
		4BAE7353139C507F00F682ED /* serialization.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = serialization.xml; path = tests/serialization.xml; sourceTree = "<group>"; };
		4BAF5F46123460C900F4E111 /* OFCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFCollection.h; path = src/OFCollection.h; sourceTree = "<group>"; };
		4BAF5F49123460C900F4E111 /* OFStreamSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFStreamSocket.h; path = src/OFStreamSocket.h; sourceTree = "<group>"; };
		4BAF5F4A123460C900F4E111 /* OFStreamSocket.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFStreamSocket.m; path = src/OFStreamSocket.m; sourceTree = "<group>"; };
		4BAFC166182EAA7800BE5E57 /* OFOptionsParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFOptionsParser.h; path = src/OFOptionsParser.h; sourceTree = "<group>"; };
		4BAFC167182EAA7800BE5E57 /* OFOptionsParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFOptionsParser.m; path = src/OFOptionsParser.m; sourceTree = "<group>"; };
		4BB25E82139C388A00F574EA /* OFObject+Serialization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "OFObject+Serialization.h"; path = "src/OFObject+Serialization.h"; sourceTree = "<group>"; };
2114
2115
2116
2117
2118
2119
2120


2121
2122
2123
2124
2125
2126
2127
				4B06855018B2AD3800FC731A /* OFINICategory.h */,
				4B06855118B2AD3800FC731A /* OFINICategory.m */,
				4B06855218B2AD3800FC731A /* OFINICategory+Private.h */,
				4B5B02BC18B288A400CE6AE4 /* OFINIFile.h */,
				4B5B02BD18B288A400CE6AE4 /* OFINIFile.m */,
				4BA49D8E13DB113B00381CDB /* OFIntrospection.h */,
				4BA49D8F13DB113B00381CDB /* OFIntrospection.m */,


				4BA02B9F15041F5900002F84 /* OFJSONRepresentation.h */,
				4B0EA9181898690E00F573A4 /* OFKernelEventObserver.h */,
				4B0EA9191898690E00F573A4 /* OFKernelEventObserver.m */,
				4B0EA91A1898690E00F573A4 /* OFKernelEventObserver+Private.h */,
				4B0EA9121898690E00F573A4 /* OFKernelEventObserver_kqueue.h */,
				4B0EA9131898690E00F573A4 /* OFKernelEventObserver_kqueue.m */,
				4B0EA9141898690E00F573A4 /* OFKernelEventObserver_poll.h */,







>
>







2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
				4B06855018B2AD3800FC731A /* OFINICategory.h */,
				4B06855118B2AD3800FC731A /* OFINICategory.m */,
				4B06855218B2AD3800FC731A /* OFINICategory+Private.h */,
				4B5B02BC18B288A400CE6AE4 /* OFINIFile.h */,
				4B5B02BD18B288A400CE6AE4 /* OFINIFile.m */,
				4BA49D8E13DB113B00381CDB /* OFIntrospection.h */,
				4BA49D8F13DB113B00381CDB /* OFIntrospection.m */,
				4BAD891E1F65E68800CF44B7 /* OFInvocation.h */,
				4BAD891D1F65E68800CF44B7 /* OFInvocation.m */,
				4BA02B9F15041F5900002F84 /* OFJSONRepresentation.h */,
				4B0EA9181898690E00F573A4 /* OFKernelEventObserver.h */,
				4B0EA9191898690E00F573A4 /* OFKernelEventObserver.m */,
				4B0EA91A1898690E00F573A4 /* OFKernelEventObserver+Private.h */,
				4B0EA9121898690E00F573A4 /* OFKernelEventObserver_kqueue.h */,
				4B0EA9131898690E00F573A4 /* OFKernelEventObserver_kqueue.m */,
				4B0EA9141898690E00F573A4 /* OFKernelEventObserver_poll.h */,
2361
2362
2363
2364
2365
2366
2367

2368
2369
2370
2371
2372
2373
2374
				4BE5F0E512DF4259005C7A0C /* OFDateTests.m */,
				4B6EF6701235358D0076B512 /* OFDictionaryTests.m */,
				4BF0DD731D44645D001D9949 /* OFHMACTests.m */,
				4BB4B54916776094002A2DCE /* OFHTTPClientTests.m */,
				4B2610C51D86305C001F16C9 /* OFHTTPCookieTests.m */,
				4B11D09B1EC901440094423D /* OFHTTPCookieManagerTests.m */,
				4B5B02C018B2897500CE6AE4 /* OFINIFileTests.m */,

				4BAA60C714D09699006F068D /* OFJSONTests.m */,
				4B22BE1F1AE594A000CD320A /* OFKernelEventObserverTests.m */,
				4B6EF6721235358D0076B512 /* OFListTests.m */,
				4B6EF6731235358D0076B512 /* OFMD5HashTests.m */,
				4B61CB081F6497C40000DDDA /* OFMethodSignatureTests.m */,
				4B6EF6741235358D0076B512 /* OFNumberTests.m */,
				4B6EF6751235358D0076B512 /* OFObjectTests.m */,







>







2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
				4BE5F0E512DF4259005C7A0C /* OFDateTests.m */,
				4B6EF6701235358D0076B512 /* OFDictionaryTests.m */,
				4BF0DD731D44645D001D9949 /* OFHMACTests.m */,
				4BB4B54916776094002A2DCE /* OFHTTPClientTests.m */,
				4B2610C51D86305C001F16C9 /* OFHTTPCookieTests.m */,
				4B11D09B1EC901440094423D /* OFHTTPCookieManagerTests.m */,
				4B5B02C018B2897500CE6AE4 /* OFINIFileTests.m */,
				4BAD89231F65E80A00CF44B7 /* OFInvocationTests.m */,
				4BAA60C714D09699006F068D /* OFJSONTests.m */,
				4B22BE1F1AE594A000CD320A /* OFKernelEventObserverTests.m */,
				4B6EF6721235358D0076B512 /* OFListTests.m */,
				4B6EF6731235358D0076B512 /* OFMD5HashTests.m */,
				4B61CB081F6497C40000DDDA /* OFMethodSignatureTests.m */,
				4B6EF6741235358D0076B512 /* OFNumberTests.m */,
				4B6EF6751235358D0076B512 /* OFObjectTests.m */,
2519
2520
2521
2522
2523
2524
2525

2526
2527
2528
2529
2530
2531
2532
				4B2C21F21DA292BE00735907 /* OFHTTPResponse.h in Headers */,
				4B2C21F31DA292BE00735907 /* OFHTTPServer.h in Headers */,
				4BF20C521EEBF5F000C53220 /* OFInflate64Stream.h in Headers */,
				4BF20C561EEBF5F000C53220 /* OFInflateStream.h in Headers */,
				4B2C21F41DA292BE00735907 /* OFINICategory.h in Headers */,
				4B2C21F51DA292BE00735907 /* OFINIFile.h in Headers */,
				4B2C21F61DA292BE00735907 /* OFIntrospection.h in Headers */,

				4B2C21F71DA292BE00735907 /* OFJSONRepresentation.h in Headers */,
				4B2C21F81DA292BE00735907 /* OFKernelEventObserver.h in Headers */,
				4B2C21F91DA292BE00735907 /* OFKeyValueCoding.h in Headers */,
				4B2C21FA1DA292BE00735907 /* OFList.h in Headers */,
				4B46E2221E235EA700121ED6 /* OFLocalization.h in Headers */,
				4B2C21FB1DA292BE00735907 /* OFLocking.h in Headers */,
				4B2C21FC1DA292BE00735907 /* OFMapTable.h in Headers */,







>







2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
				4B2C21F21DA292BE00735907 /* OFHTTPResponse.h in Headers */,
				4B2C21F31DA292BE00735907 /* OFHTTPServer.h in Headers */,
				4BF20C521EEBF5F000C53220 /* OFInflate64Stream.h in Headers */,
				4BF20C561EEBF5F000C53220 /* OFInflateStream.h in Headers */,
				4B2C21F41DA292BE00735907 /* OFINICategory.h in Headers */,
				4B2C21F51DA292BE00735907 /* OFINIFile.h in Headers */,
				4B2C21F61DA292BE00735907 /* OFIntrospection.h in Headers */,
				4BAD891F1F65E6B300CF44B7 /* OFInvocation.h in Headers */,
				4B2C21F71DA292BE00735907 /* OFJSONRepresentation.h in Headers */,
				4B2C21F81DA292BE00735907 /* OFKernelEventObserver.h in Headers */,
				4B2C21F91DA292BE00735907 /* OFKeyValueCoding.h in Headers */,
				4B2C21FA1DA292BE00735907 /* OFList.h in Headers */,
				4B46E2221E235EA700121ED6 /* OFLocalization.h in Headers */,
				4B2C21FB1DA292BE00735907 /* OFLocking.h in Headers */,
				4B2C21FC1DA292BE00735907 /* OFMapTable.h in Headers */,
2753
2754
2755
2756
2757
2758
2759

2760
2761
2762
2763
2764
2765
2766
				4B7161AD17A6FC7600B74970 /* OFHTTPResponse.h in Headers */,
				4BB4B54616775FF4002A2DCE /* OFHTTPServer.h in Headers */,
				4BF20C511EEBF5F000C53220 /* OFInflate64Stream.h in Headers */,
				4BF20C551EEBF5F000C53220 /* OFInflateStream.h in Headers */,
				4B06855318B2AD3800FC731A /* OFINICategory.h in Headers */,
				4B5B02BE18B288A400CE6AE4 /* OFINIFile.h in Headers */,
				4BA49D9013DB113B00381CDB /* OFIntrospection.h in Headers */,

				4BA02BA115041F5900002F84 /* OFJSONRepresentation.h in Headers */,
				4B0EA9211898690E00F573A4 /* OFKernelEventObserver.h in Headers */,
				4BC1762F1D04963000C32718 /* OFKeyValueCoding.h in Headers */,
				4B3D23CB1337FCB000DD29B8 /* OFList.h in Headers */,
				4B46E2211E235EA700121ED6 /* OFLocalization.h in Headers */,
				4B674402163C395900EB1E59 /* OFLocking.h in Headers */,
				4B3B0798166978780044E634 /* OFMapTable.h in Headers */,







>







2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
				4B7161AD17A6FC7600B74970 /* OFHTTPResponse.h in Headers */,
				4BB4B54616775FF4002A2DCE /* OFHTTPServer.h in Headers */,
				4BF20C511EEBF5F000C53220 /* OFInflate64Stream.h in Headers */,
				4BF20C551EEBF5F000C53220 /* OFInflateStream.h in Headers */,
				4B06855318B2AD3800FC731A /* OFINICategory.h in Headers */,
				4B5B02BE18B288A400CE6AE4 /* OFINIFile.h in Headers */,
				4BA49D9013DB113B00381CDB /* OFIntrospection.h in Headers */,
				4BAD89201F65E6B300CF44B7 /* OFInvocation.h in Headers */,
				4BA02BA115041F5900002F84 /* OFJSONRepresentation.h in Headers */,
				4B0EA9211898690E00F573A4 /* OFKernelEventObserver.h in Headers */,
				4BC1762F1D04963000C32718 /* OFKeyValueCoding.h in Headers */,
				4B3D23CB1337FCB000DD29B8 /* OFList.h in Headers */,
				4B46E2211E235EA700121ED6 /* OFLocalization.h in Headers */,
				4B674402163C395900EB1E59 /* OFLocking.h in Headers */,
				4B3B0798166978780044E634 /* OFMapTable.h in Headers */,
3320
3321
3322
3323
3324
3325
3326

3327
3328
3329
3330
3331
3332
3333
				4B2C213A1DA292BE00735907 /* OFHTTPResponse.m in Sources */,
				4B2C213B1DA292BE00735907 /* OFHTTPServer.m in Sources */,
				4BF20C541EEBF5F000C53220 /* OFInflate64Stream.m in Sources */,
				4BF20C581EEBF5F000C53220 /* OFInflateStream.m in Sources */,
				4B2C213C1DA292BE00735907 /* OFINICategory.m in Sources */,
				4B2C213D1DA292BE00735907 /* OFINIFile.m in Sources */,
				4B2C213E1DA292BE00735907 /* OFIntrospection.m in Sources */,

				4B2C213F1DA292BE00735907 /* OFGZIPStream.m in Sources */,
				4B2C21401DA292BE00735907 /* OFKernelEventObserver.m in Sources */,
				4B2C21411DA292BE00735907 /* OFKernelEventObserver_kqueue.m in Sources */,
				4B2C21421DA292BE00735907 /* OFKernelEventObserver_poll.m in Sources */,
				4B2C21431DA292BE00735907 /* OFKernelEventObserver_select.m in Sources */,
				4B2C21441DA292BE00735907 /* OFList.m in Sources */,
				4B46E2241E235EA700121ED6 /* OFLocalization.m in Sources */,







>







3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
				4B2C213A1DA292BE00735907 /* OFHTTPResponse.m in Sources */,
				4B2C213B1DA292BE00735907 /* OFHTTPServer.m in Sources */,
				4BF20C541EEBF5F000C53220 /* OFInflate64Stream.m in Sources */,
				4BF20C581EEBF5F000C53220 /* OFInflateStream.m in Sources */,
				4B2C213C1DA292BE00735907 /* OFINICategory.m in Sources */,
				4B2C213D1DA292BE00735907 /* OFINIFile.m in Sources */,
				4B2C213E1DA292BE00735907 /* OFIntrospection.m in Sources */,
				4BAD89221F65E6B700CF44B7 /* OFInvocation.m in Sources */,
				4B2C213F1DA292BE00735907 /* OFGZIPStream.m in Sources */,
				4B2C21401DA292BE00735907 /* OFKernelEventObserver.m in Sources */,
				4B2C21411DA292BE00735907 /* OFKernelEventObserver_kqueue.m in Sources */,
				4B2C21421DA292BE00735907 /* OFKernelEventObserver_poll.m in Sources */,
				4B2C21431DA292BE00735907 /* OFKernelEventObserver_select.m in Sources */,
				4B2C21441DA292BE00735907 /* OFList.m in Sources */,
				4B46E2241E235EA700121ED6 /* OFLocalization.m in Sources */,
3527
3528
3529
3530
3531
3532
3533

3534
3535
3536
3537
3538
3539
3540
				4B7161AE17A6FC7600B74970 /* OFHTTPResponse.m in Sources */,
				4BB4B54716775FF4002A2DCE /* OFHTTPServer.m in Sources */,
				4BF20C531EEBF5F000C53220 /* OFInflate64Stream.m in Sources */,
				4BF20C571EEBF5F000C53220 /* OFInflateStream.m in Sources */,
				4B06855418B2AD3800FC731A /* OFINICategory.m in Sources */,
				4B5B02BF18B288A400CE6AE4 /* OFINIFile.m in Sources */,
				4BA49D9113DB113B00381CDB /* OFIntrospection.m in Sources */,

				4BD112611CCB73A60076FDB9 /* OFGZIPStream.m in Sources */,
				4B0EA9221898690E00F573A4 /* OFKernelEventObserver.m in Sources */,
				4B0EA91C1898690E00F573A4 /* OFKernelEventObserver_kqueue.m in Sources */,
				4B0EA91E1898690E00F573A4 /* OFKernelEventObserver_poll.m in Sources */,
				4B0EA9201898690E00F573A4 /* OFKernelEventObserver_select.m in Sources */,
				4B3D23991337FC0D00DD29B8 /* OFList.m in Sources */,
				4B46E2231E235EA700121ED6 /* OFLocalization.m in Sources */,







>







3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
				4B7161AE17A6FC7600B74970 /* OFHTTPResponse.m in Sources */,
				4BB4B54716775FF4002A2DCE /* OFHTTPServer.m in Sources */,
				4BF20C531EEBF5F000C53220 /* OFInflate64Stream.m in Sources */,
				4BF20C571EEBF5F000C53220 /* OFInflateStream.m in Sources */,
				4B06855418B2AD3800FC731A /* OFINICategory.m in Sources */,
				4B5B02BF18B288A400CE6AE4 /* OFINIFile.m in Sources */,
				4BA49D9113DB113B00381CDB /* OFIntrospection.m in Sources */,
				4BAD89211F65E6B600CF44B7 /* OFInvocation.m in Sources */,
				4BD112611CCB73A60076FDB9 /* OFGZIPStream.m in Sources */,
				4B0EA9221898690E00F573A4 /* OFKernelEventObserver.m in Sources */,
				4B0EA91C1898690E00F573A4 /* OFKernelEventObserver_kqueue.m in Sources */,
				4B0EA91E1898690E00F573A4 /* OFKernelEventObserver_poll.m in Sources */,
				4B0EA9201898690E00F573A4 /* OFKernelEventObserver_select.m in Sources */,
				4B3D23991337FC0D00DD29B8 /* OFList.m in Sources */,
				4B46E2231E235EA700121ED6 /* OFLocalization.m in Sources */,
3722
3723
3724
3725
3726
3727
3728

3729
3730
3731
3732
3733
3734
3735
				4BD9CA041DA2C60700E5AD52 /* OFDateTests.m in Sources */,
				4BD9CA051DA2C60900E5AD52 /* OFDictionaryTests.m in Sources */,
				4BD9CA061DA2C60B00E5AD52 /* OFHMACTests.m in Sources */,
				4BD9CA071DA2C60E00E5AD52 /* OFHTTPClientTests.m in Sources */,
				4BD9CA081DA2C61900E5AD52 /* OFHTTPCookieTests.m in Sources */,
				4B11D09D1EC901440094423D /* OFHTTPCookieManagerTests.m in Sources */,
				4BD9CA091DA2C61E00E5AD52 /* OFINIFileTests.m in Sources */,

				4BD9CA0A1DA2C62000E5AD52 /* OFJSONTests.m in Sources */,
				4BD9CA0B1DA2C62200E5AD52 /* OFKernelEventObserverTests.m in Sources */,
				4BD9CA0C1DA2C62500E5AD52 /* OFListTests.m in Sources */,
				4BD9CA0D1DA2C62800E5AD52 /* OFMD5HashTests.m in Sources */,
				4B61CB0A1F6497FB0000DDDA /* OFMethodSignatureTests.m in Sources */,
				4BD9CA0E1DA2C62B00E5AD52 /* OFNumberTests.m in Sources */,
				4BD9CA0F1DA2C62D00E5AD52 /* OFObjectTests.m in Sources */,







>







3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
				4BD9CA041DA2C60700E5AD52 /* OFDateTests.m in Sources */,
				4BD9CA051DA2C60900E5AD52 /* OFDictionaryTests.m in Sources */,
				4BD9CA061DA2C60B00E5AD52 /* OFHMACTests.m in Sources */,
				4BD9CA071DA2C60E00E5AD52 /* OFHTTPClientTests.m in Sources */,
				4BD9CA081DA2C61900E5AD52 /* OFHTTPCookieTests.m in Sources */,
				4B11D09D1EC901440094423D /* OFHTTPCookieManagerTests.m in Sources */,
				4BD9CA091DA2C61E00E5AD52 /* OFINIFileTests.m in Sources */,
				4BAD89251F65E80A00CF44B7 /* OFInvocationTests.m in Sources */,
				4BD9CA0A1DA2C62000E5AD52 /* OFJSONTests.m in Sources */,
				4BD9CA0B1DA2C62200E5AD52 /* OFKernelEventObserverTests.m in Sources */,
				4BD9CA0C1DA2C62500E5AD52 /* OFListTests.m in Sources */,
				4BD9CA0D1DA2C62800E5AD52 /* OFMD5HashTests.m in Sources */,
				4B61CB0A1F6497FB0000DDDA /* OFMethodSignatureTests.m in Sources */,
				4BD9CA0E1DA2C62B00E5AD52 /* OFNumberTests.m in Sources */,
				4BD9CA0F1DA2C62D00E5AD52 /* OFObjectTests.m in Sources */,
3769
3770
3771
3772
3773
3774
3775

3776
3777
3778
3779
3780
3781
3782
				4BF33AFF133807A20059CEF7 /* OFDateTests.m in Sources */,
				4BF33B00133807A20059CEF7 /* OFDictionaryTests.m in Sources */,
				4BF0DD741D44645D001D9949 /* OFHMACTests.m in Sources */,
				4BB4B54A16776094002A2DCE /* OFHTTPClientTests.m in Sources */,
				4B2610C61D86305C001F16C9 /* OFHTTPCookieTests.m in Sources */,
				4B11D09C1EC901440094423D /* OFHTTPCookieManagerTests.m in Sources */,
				4B5B02C118B2897500CE6AE4 /* OFINIFileTests.m in Sources */,

				4BAA60C814D09699006F068D /* OFJSONTests.m in Sources */,
				4B22BE201AE594A000CD320A /* OFKernelEventObserverTests.m in Sources */,
				4BF33B03133807A20059CEF7 /* OFListTests.m in Sources */,
				4BF33B04133807A20059CEF7 /* OFMD5HashTests.m in Sources */,
				4BF33B05133807A20059CEF7 /* OFNumberTests.m in Sources */,
				4BF33B06133807A20059CEF7 /* OFObjectTests.m in Sources */,
				4BF33B07133807A20059CEF7 /* OFPluginTests.m in Sources */,







>







3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
				4BF33AFF133807A20059CEF7 /* OFDateTests.m in Sources */,
				4BF33B00133807A20059CEF7 /* OFDictionaryTests.m in Sources */,
				4BF0DD741D44645D001D9949 /* OFHMACTests.m in Sources */,
				4BB4B54A16776094002A2DCE /* OFHTTPClientTests.m in Sources */,
				4B2610C61D86305C001F16C9 /* OFHTTPCookieTests.m in Sources */,
				4B11D09C1EC901440094423D /* OFHTTPCookieManagerTests.m in Sources */,
				4B5B02C118B2897500CE6AE4 /* OFINIFileTests.m in Sources */,
				4BAD89241F65E80A00CF44B7 /* OFInvocationTests.m in Sources */,
				4BAA60C814D09699006F068D /* OFJSONTests.m in Sources */,
				4B22BE201AE594A000CD320A /* OFKernelEventObserverTests.m in Sources */,
				4BF33B03133807A20059CEF7 /* OFListTests.m in Sources */,
				4BF33B04133807A20059CEF7 /* OFMD5HashTests.m in Sources */,
				4BF33B05133807A20059CEF7 /* OFNumberTests.m in Sources */,
				4BF33B06133807A20059CEF7 /* OFObjectTests.m in Sources */,
				4BF33B07133807A20059CEF7 /* OFPluginTests.m in Sources */,

Modified src/Makefile from [f59375195a] to [60c6c6163f].

23
24
25
26
27
28
29
30
31

32

33
34
35
36
37
38
39
       OFEnumerator.m			\
       OFGZIPStream.m			\
       OFHMAC.m				\
       OFHTTPCookie.m			\
       OFHTTPCookieManager.m		\
       OFHTTPRequest.m			\
       OFHTTPResponse.m			\
       OFInflateStream.m		\
       OFInflate64Stream.m		\

       OFIntrospection.m		\

       OFList.m				\
       OFLocalization.m			\
       OFMapTable.m			\
       OFMD5Hash.m			\
       OFMessagePackExtension.m		\
       OFMethodSignature.m		\
       OFMutableArray.m			\







<

>

>







23
24
25
26
27
28
29

30
31
32
33
34
35
36
37
38
39
40
       OFEnumerator.m			\
       OFGZIPStream.m			\
       OFHMAC.m				\
       OFHTTPCookie.m			\
       OFHTTPCookieManager.m		\
       OFHTTPRequest.m			\
       OFHTTPResponse.m			\

       OFInflate64Stream.m		\
       OFInflateStream.m		\
       OFIntrospection.m		\
       OFInvocation.m			\
       OFList.m				\
       OFLocalization.m			\
       OFMapTable.m			\
       OFMD5Hash.m			\
       OFMessagePackExtension.m		\
       OFMethodSignature.m		\
       OFMutableArray.m			\

Added src/OFInvocation.h version [644970666b].

























































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/*
 * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017
 *   Jonathan Schleifer <js@heap.zone>
 *
 * All rights reserved.
 *
 * This file is part of ObjFW. It may be distributed under the terms of the
 * Q Public License 1.0, which can be found in the file LICENSE.QPL included in
 * the packaging of this file.
 *
 * Alternatively, it may be distributed under the terms of the GNU General
 * Public License, either version 2 or 3, which can be found in the file
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFObject.h"

OF_ASSUME_NONNULL_BEGIN

@class OFMethodSignature;
@class OFMutableArray OF_GENERIC(ObjectType);
@class OFMutableData;

/*!
 * @class OFInvocation OFInvocation.h ObjFW/OFInvocation.h
 *
 * @brief A class for storing and accessing invocations, and invoking them.
 */
@interface OFInvocation: OFObject
{
	OFMethodSignature *_methodSignature;
	OFMutableArray OF_GENERIC(OFMutableData *) *_arguments;
	OFMutableData *_returnValue;
}

/*!
 * The method signature for the invocation.
 */
@property (readonly, nonatomic) OFMethodSignature *methodSignature;

/*!
 * @brief Creates a new invocation with the specified method signature.
 *
 * @param signature The method signature for the invocation
 * @return A new, autoreleased OFInvocation
 */
+ (instancetype)invocationWithMethodSignature: (OFMethodSignature *)signature;

/*!
 * @brief Initializes an already allocated invocation with the specified method
 *	  signature.
 *
 * @param signature The method signature for the invocation
 * @return An initialized OFInvocation
 */
- initWithMethodSignature: (OFMethodSignature *)signature;

/*!
 * @brief Sets the argument for the specified index.
 *
 * @param buffer The buffer in which the argument is stored
 * @param index The index of the argument to set
 */
- (void)setArgument: (const void *)buffer
	    atIndex: (size_t)index;

/*!
 * @brief Gets the argument for the specified index.
 *
 * @param buffer The buffer in which the argument is stored
 * @param index The index of the argument to get
 */
- (void)getArgument: (void *)buffer
	    atIndex: (size_t)index;

/*!
 * @brief Sets the return value.
 *
 * @param buffer The buffer in which the return value is stored
 */
- (void)setReturnValue: (const void *)buffer;

/*!
 * @brief Gets the return value.
 *
 * @param buffer The buffer in which the return value is stored
 */
- (void)getReturnValue: (void *)buffer;
@end

OF_ASSUME_NONNULL_END

Added src/OFInvocation.m version [d28fd7d86d].



























































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
/*
 * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017
 *   Jonathan Schleifer <js@heap.zone>
 *
 * All rights reserved.
 *
 * This file is part of ObjFW. It may be distributed under the terms of the
 * Q Public License 1.0, which can be found in the file LICENSE.QPL included in
 * the packaging of this file.
 *
 * Alternatively, it may be distributed under the terms of the GNU General
 * Public License, either version 2 or 3, which can be found in the file
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#include "config.h"

#include <string.h>

#import "OFInvocation.h"
#import "OFArray.h"
#import "OFData.h"
#import "OFMethodSignature.h"

@implementation OFInvocation
@synthesize methodSignature = _methodSignature;

+ (instancetype)invocationWithMethodSignature: (OFMethodSignature *)signature
{
	return [[[self alloc] initWithMethodSignature: signature] autorelease];
}

- initWithMethodSignature: (OFMethodSignature *)signature
{
	self = [super init];

	@try {
		void *pool = objc_autoreleasePoolPush();
		size_t numberOfArguments = [signature numberOfArguments];
		const char *typeEncoding;
		size_t typeSize;

		_methodSignature = [signature retain];
		_arguments = [[OFMutableArray alloc] init];

		for (size_t i = 0; i < numberOfArguments; i++) {
			OFMutableData *data;

			typeEncoding = [_methodSignature
			    argumentTypeAtIndex: i];
			typeSize = of_sizeof_type_encoding(typeEncoding);

			data = [OFMutableData dataWithItemSize: typeSize
						      capacity: 1];
			[data increaseCountBy: 1];
			[_arguments addObject: data];
		}

		typeEncoding = [_methodSignature methodReturnType];
		typeSize = of_sizeof_type_encoding(typeEncoding);
		_returnValue = [[OFMutableData alloc] initWithItemSize: typeSize
							      capacity: 1];
		[_returnValue increaseCountBy: 1];

		objc_autoreleasePoolPop(pool);
	} @catch (id e) {
		[self release];
		@throw e;
	}

	return self;
}

- (void)dealloc
{
	[_methodSignature release];
	[_arguments release];
	[_returnValue release];

	[super dealloc];
}

- (void)setArgument: (const void *)buffer
	    atIndex: (size_t)index
{
	OFMutableData *data = [_arguments objectAtIndex: index];

	memcpy([data items], buffer, [data itemSize]);
}

- (void)getArgument: (void *)buffer
	    atIndex: (size_t)index
{
	OFData *data = [_arguments objectAtIndex: index];

	memcpy(buffer, [data items], [data itemSize]);
}

- (void)setReturnValue: (const void *)buffer
{
	memcpy([_returnValue items], buffer, [_returnValue itemSize]);
}

- (void)getReturnValue: (void *)buffer
{
	memcpy(buffer, [_returnValue items], [_returnValue itemSize]);
}
@end

Modified src/OFLocalization.h from [f635a4f99c] to [2ce88aec39].

40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
	OFString *_territory;
	of_string_encoding_t _encoding;
	OFString *_decimalPoint;
	OFMutableArray OF_GENERIC(OFDictionary OF_GENERIC(OFString *, id) *)
	    *_localizedStrings;
}

/**
 * The language of the locale for messages.
 *
 * If the language is unknown, it is `nil`.
 */
@property OF_NULLABLE_PROPERTY (readonly, nonatomic) OFString *language;

/*!







|







40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
	OFString *_territory;
	of_string_encoding_t _encoding;
	OFString *_decimalPoint;
	OFMutableArray OF_GENERIC(OFDictionary OF_GENERIC(OFString *, id) *)
	    *_localizedStrings;
}

/*!
 * The language of the locale for messages.
 *
 * If the language is unknown, it is `nil`.
 */
@property OF_NULLABLE_PROPERTY (readonly, nonatomic) OFString *language;

/*!
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
 *	    case, you need to manually allocate an instance and call
 *	    @ref init once.
 *
 * @return The shared OFLocalization instance
 */
+ (instancetype)sharedLocalization;

/**
 * @brief Returns the language of the locale.
 *
 * If the language is unknown, `nil` is returned.
 *
 * @return The language of the locale.
 */
+ (nullable OFString *)language;







|







80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
 *	    case, you need to manually allocate an instance and call
 *	    @ref init once.
 *
 * @return The shared OFLocalization instance
 */
+ (instancetype)sharedLocalization;

/*!
 * @brief Returns the language of the locale.
 *
 * If the language is unknown, `nil` is returned.
 *
 * @return The language of the locale.
 */
+ (nullable OFString *)language;
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
 *		   looked up or is missing
 * @return The localized string
 */
- (OFString *)localizedStringForID: (OFConstantString *)ID
			  fallback: (OFConstantString *)fallback, ...
				    OF_SENTINEL;

/**
 * @brief Returns the localized string for the specified ID, using the fallback
 *	  string if it cannot be looked up or is missing.
 *
 * @note This takes a variadic argument, terminated by `nil` and passed as
 *	 va_list, that consists of pairs of variable names and variable values,
 *	 which will be replaced inside the localized string. For example, you
 *	 can pass `@"name", @"foo", nil`, causing `%[name]` to be replaced with







|







169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
 *		   looked up or is missing
 * @return The localized string
 */
- (OFString *)localizedStringForID: (OFConstantString *)ID
			  fallback: (OFConstantString *)fallback, ...
				    OF_SENTINEL;

/*!
 * @brief Returns the localized string for the specified ID, using the fallback
 *	  string if it cannot be looked up or is missing.
 *
 * @note This takes a variadic argument, terminated by `nil` and passed as
 *	 va_list, that consists of pairs of variable names and variable values,
 *	 which will be replaced inside the localized string. For example, you
 *	 can pass `@"name", @"foo", nil`, causing `%[name]` to be replaced with

Modified src/OFMethodSignature.h from [cd19d5ba8b] to [c54083e3fd].

45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 * The size of the arguments on the stack frame.
 *
 * @note This is platform-dependent!
 */
@property (readonly, nonatomic) size_t frameLength;

/*!
 * @brief Creates a new, autoreleased OFMethodSignature with the specified
 *	  ObjC types.
 *
 * @param types The ObjC types of the method
 * @return A new, autoreleased OFMethodSignature
 */
+ (instancetype)signatureWithObjCTypes: (const char *)types;

/*!







|
<







45
46
47
48
49
50
51
52

53
54
55
56
57
58
59
 * The size of the arguments on the stack frame.
 *
 * @note This is platform-dependent!
 */
@property (readonly, nonatomic) size_t frameLength;

/*!
 * @brief Creates a new OFMethodSignature with the specified ObjC types.

 *
 * @param types The ObjC types of the method
 * @return A new, autoreleased OFMethodSignature
 */
+ (instancetype)signatureWithObjCTypes: (const char *)types;

/*!
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/*!
 * @brief Returns the offset on the stack frame of the argument at the
 *	  specified index.
 *
 * @note This is platform-dependent!
 *
 * @param index The index of the argument for which to return the offset
 * @returns The offset on the stack frame of the argument at the
 *	    specified index
 */
- (size_t)argumentOffsetAtIndex: (size_t)index;
@end

#ifdef __cplusplus
extern "C" {
#endif







|
<







76
77
78
79
80
81
82
83

84
85
86
87
88
89
90
/*!
 * @brief Returns the offset on the stack frame of the argument at the
 *	  specified index.
 *
 * @note This is platform-dependent!
 *
 * @param index The index of the argument for which to return the offset
 * @return The offset on the stack frame of the argument at the specified index

 */
- (size_t)argumentOffsetAtIndex: (size_t)index;
@end

#ifdef __cplusplus
extern "C" {
#endif

Modified src/OFMethodSignature.m from [8035bbc364] to [640be941be].

21
22
23
24
25
26
27


28
29
30
31
32
33
34

#import "OFMethodSignature.h"
#import "OFData.h"

#import "OFInvalidArgumentException.h"
#import "OFInvalidFormatException.h"
#import "OFOutOfRangeException.h"



size_t sizeofEncoding(const char **type, size_t *length);
size_t alignofEncoding(const char **type, size_t *length);

size_t
sizeofArray(const char **type, size_t *length)
{







>
>







21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

#import "OFMethodSignature.h"
#import "OFData.h"

#import "OFInvalidArgumentException.h"
#import "OFInvalidFormatException.h"
#import "OFOutOfRangeException.h"

#import "macros.h"

size_t sizeofEncoding(const char **type, size_t *length);
size_t alignofEncoding(const char **type, size_t *length);

size_t
sizeofArray(const char **type, size_t *length)
{

Modified src/OFTLSSocket.h from [e543ca804e] to [ece0928c2a].

75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
 *
 * @warning You have to ensure that this is in secure memory protected from
 *	    swapping! This is also the reason why this is not an OFString.
 */
@property OF_NULLABLE_PROPERTY (assign, nonatomic)
    const char *privateKeyPassphrase;

/**
 * Whether certificate verification is enabled.
 *
 * The default is enabled.
 */
@property (nonatomic, getter=isCertificateVerificationEnabled)
    bool certificateVerificationEnabled;








|







75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
 *
 * @warning You have to ensure that this is in secure memory protected from
 *	    swapping! This is also the reason why this is not an OFString.
 */
@property OF_NULLABLE_PROPERTY (assign, nonatomic)
    const char *privateKeyPassphrase;

/*!
 * Whether certificate verification is enabled.
 *
 * The default is enabled.
 */
@property (nonatomic, getter=isCertificateVerificationEnabled)
    bool certificateVerificationEnabled;

Modified tests/Makefile from [23c81539c3] to [f674c5c6e9].

12
13
14
15
16
17
18

19
20
21
22
23
24
25
       OFArrayTests.m			\
       ${OFBLOCKTESTS_M}		\
       OFDataTests.m			\
       OFDateTests.m			\
       OFDictionaryTests.m		\
       OFHTTPCookieTests.m		\
       OFHTTPCookieManagerTests.m	\

       OFJSONTests.m			\
       OFListTests.m			\
       OFMethodSignatureTests.m		\
       OFNumberTests.m			\
       OFObjectTests.m			\
       OFSetTests.m			\
       OFStreamTests.m			\







>







12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
       OFArrayTests.m			\
       ${OFBLOCKTESTS_M}		\
       OFDataTests.m			\
       OFDateTests.m			\
       OFDictionaryTests.m		\
       OFHTTPCookieTests.m		\
       OFHTTPCookieManagerTests.m	\
       OFInvocationTests.m		\
       OFJSONTests.m			\
       OFListTests.m			\
       OFMethodSignatureTests.m		\
       OFNumberTests.m			\
       OFObjectTests.m			\
       OFSetTests.m			\
       OFStreamTests.m			\

Added tests/OFInvocationTests.m version [0aa6c53400].







































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/*
 * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017
 *   Jonathan Schleifer <js@heap.zone>
 *
 * All rights reserved.
 *
 * This file is part of ObjFW. It may be distributed under the terms of the
 * Q Public License 1.0, which can be found in the file LICENSE.QPL included in
 * the packaging of this file.
 *
 * Alternatively, it may be distributed under the terms of the GNU General
 * Public License, either version 2 or 3, which can be found in the file
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#include "config.h"

#include <string.h>

#import "OFInvocation.h"
#import "OFMethodSignature.h"
#import "OFAutoreleasePool.h"

#import "TestsAppDelegate.h"

static OFString *module = @"OFInvocation";

struct test_struct {
	unsigned char c;
	unsigned int i;
};

@implementation TestsAppDelegate (OFInvocationTests)
- (struct test_struct)invocationTestMethod: (unsigned char)c
					  : (unsigned int)i
					  : (struct test_struct *)ptr
					  : (struct test_struct)st
{
	return st;
}

- (void)invocationTests
{
	OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
	OFMethodSignature *sig = [self methodSignatureForSelector:
	    @selector(invocationTestMethod::::)];
	OFInvocation *invocation;
	struct test_struct st, st2, *stp = &st, *stp2;
	unsigned const char c = 0xAA;
	unsigned char c2;
	const unsigned int i = 0x55555555;
	unsigned int i2;

	memset(&st, '\xFF', sizeof(st));
	st.c = 0x55;
	st.i = 0xAAAAAAAA;

	TEST(@"+[invocationWithMethodSignature:]",
	    (invocation = [OFInvocation invocationWithMethodSignature: sig]))

	TEST(@"-[setReturnValue]", R([invocation setReturnValue: &st]))

	TEST(@"-[getReturnValue]", R([invocation getReturnValue: &st2]) &&
	    memcmp(&st, &st2, sizeof(st)) == 0)

	memset(&st2, '\0', sizeof(st2));

	TEST(@"-[setArgument:atIndex:] #1", R([invocation setArgument: &c
							      atIndex: 2]))

	TEST(@"-[setArgument:atIndex:] #2", R([invocation setArgument: &i
							      atIndex: 3]))

	TEST(@"-[setArgument:atIndex:] #3", R([invocation setArgument: &stp
							      atIndex: 4]))

	TEST(@"-[setArgument:atIndex:] #4", R([invocation setArgument: &st
							      atIndex: 5]))

	TEST(@"-[getArgument:atIndex:] #1", R([invocation getArgument: &c2
							      atIndex: 2]) &&
	    c == c2)

	TEST(@"-[getArgument:atIndex:] #2", R([invocation getArgument: &i2
							      atIndex: 3]) &&
	    i == i2)

	TEST(@"-[getArgument:atIndex:] #3", R([invocation getArgument: &stp2
							      atIndex: 4]) &&
	    stp == stp2)

	TEST(@"-[getArgument:atIndex:] #4", R([invocation getArgument: &st2
							      atIndex: 5]) &&
	    memcmp(&st, &st2, sizeof(st)) == 0)

	[pool drain];
}
@end

Modified tests/TestsAppDelegate.h from [f98b540d98] to [33527ebc5b].

107
108
109
110
111
112
113




114
115
116
117
118
119
120
@interface TestsAppDelegate (OFHTTPCookieManagerTests)
- (void)HTTPCookieManagerTests;
@end

@interface TestsAppDelegate (OFINIFileTests)
- (void)INIFileTests;
@end





@interface TestsAppDelegate (OFJSONTests)
- (void)JSONTests;
@end

@interface TestsAppDelegate (OFKernelEventObserverTests)
- (void)kernelEventObserverTests;







>
>
>
>







107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
@interface TestsAppDelegate (OFHTTPCookieManagerTests)
- (void)HTTPCookieManagerTests;
@end

@interface TestsAppDelegate (OFINIFileTests)
- (void)INIFileTests;
@end

@interface TestsAppDelegate (OFInvocationTests)
- (void)invocationTests;
@end

@interface TestsAppDelegate (OFJSONTests)
- (void)JSONTests;
@end

@interface TestsAppDelegate (OFKernelEventObserverTests)
- (void)kernelEventObserverTests;

Modified tests/TestsAppDelegate.m from [4873a31602] to [44ee73c52a].

377
378
379
380
381
382
383

384
385
386
387
388
389
390
#if defined(OF_WII) && defined(OF_HAVE_FILES)
	[[OFFileManager defaultManager]
	    changeCurrentDirectoryPath: @"/apps/objfw-tests"];
#endif

	[self runtimeTests];
	[self methodSignatureTests];

	[self forwardingTests];
	[self objectTests];
#ifdef OF_HAVE_BLOCKS
	[self blockTests];
#endif
	[self stringTests];
	[self dataTests];







>







377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
#if defined(OF_WII) && defined(OF_HAVE_FILES)
	[[OFFileManager defaultManager]
	    changeCurrentDirectoryPath: @"/apps/objfw-tests"];
#endif

	[self runtimeTests];
	[self methodSignatureTests];
	[self invocationTests];
	[self forwardingTests];
	[self objectTests];
#ifdef OF_HAVE_BLOCKS
	[self blockTests];
#endif
	[self stringTests];
	[self dataTests];