@@ -181,6 +181,7 @@ reset_patch_targets() {
181181 Source/GSDictionary.m \
182182 Source/NSDictionary.m \
183183 Source/NSPropertyList.m \
184+ Source/NSSerializer.m \
184185 Source/NSFileManager.m \
185186 Source/NSDatePrivate.h \
186187 Source/NSNumber.m \
@@ -356,6 +357,8 @@ patch_nsfilemanager_cached_imp_for_darwin_gcc() {
356357 perl -0pi -e ' s/IMP(\s+)addImp;/void (*addImp)(id, SEL, id);/g' " $filemanager "
357358 perl -0pi -e ' s/(\n\s+nxtImp\s*=\s*)\[direnum\s+methodForSelector:\s*@selector\(nextObject\)\];/$1(id (*)(id, SEL))[direnum methodForSelector: @selector(nextObject)];/g' " $filemanager "
358359 perl -0pi -e ' s/(\n\s+addImp\s*=\s*)\[content\s+methodForSelector:\s*@selector\(addObject:\)\];/$1(void (*)(id, SEL, id))[content methodForSelector: @selector(addObject:)];/g' " $filemanager "
360+ perl -0pi -e ' s/\n\s+id \(\*nxtImp\)\(id, SEL\);\n\s+void \(\*addImp\)\(id, SEL, id\);\n\s*\n\s+nxtImp = \[direnum methodForSelector: @selector\(nextObject\)\];\n\s+addImp = \[content methodForSelector: @selector\(addObject:\)\];\n\s*\n\s+while \(\(path = \(\*nxtImp\)\(direnum, @selector\(nextObject\)\)\) != nil\)\n\s+\{\n\s+\(\*addImp\)\(content, @selector\(addObject:\), path\);\n\s+\}/\n while ((path = [direnum nextObject]) != nil)\n\t{\n\t [content addObject: path];\n\t}/g' " $filemanager "
361+ perl -0pi -e ' s/\n\s+id \(\*nxtImp\)\(id, SEL\);\n(\s+NSMutableArray\s+\*urlArray;\n\s+NSString\s+\*tempPath;\n\s*\n)\s+nxtImp = \[direnum methodForSelector: @selector\(nextObject\)\];\n\s*\n(\s+urlArray = \[NSMutableArray arrayWithCapacity: 128\];\n)\s+while \(\(tempPath = \(\*nxtImp\)\(direnum, @selector\(nextObject\)\)\) != nil\)/\n$1$2 while ((tempPath = [direnum nextObject]) != nil)/g' " $filemanager "
359362}
360363
361364patch_nspropertylist_cached_imp_for_darwin_gcc () {
@@ -367,6 +370,16 @@ patch_nspropertylist_cached_imp_for_darwin_gcc() {
367370 perl -0pi -e ' s/IMP(\s+)myObj(\s*=\s*\[obj\s+methodForSelector:\s*objSel\];)/id (*myObj)(id, SEL, id)$2/g' " $plist "
368371}
369372
373+ patch_nsserializer_cached_imp_for_darwin_gcc () {
374+ local serializer=" $SRCROOT /libs-base/Source/NSSerializer.m"
375+ if [[ ! -f " $serializer " ]]; then
376+ return
377+ fi
378+
379+ perl -0pi -e ' s/IMP(\s+)nxtImp;/id (*nxtImp)(id, SEL);/g' " $serializer "
380+ perl -0pi -e ' s/IMP(\s+)objImp;/id (*objImp)(id, SEL, id);/g' " $serializer "
381+ }
382+
370383# patch_nsobject_for_gnu_runtime
371384#
372385# Wraps GNU-Objective-C-2 runtime API calls inside NSObject.m with
@@ -592,6 +605,7 @@ patch_nsdictionary_cached_imp_for_darwin_gcc
592605patch_nsuserdefaults_cached_imp_for_darwin_gcc
593606patch_nsfilemanager_cached_imp_for_darwin_gcc
594607patch_nspropertylist_cached_imp_for_darwin_gcc
608+ patch_nsserializer_cached_imp_for_darwin_gcc
595609patch_nsobject_for_gnu_runtime
596610patch_nsnotificationcenter_for_gnu_runtime
597611patch_nszone_for_darwin_gcc
0 commit comments