X-Git-Url: https://git.saurik.com/apple/objc4.git/blobdiff_plain/66799735d8bda875ab4775e8f735a194bad1653c..refs/heads/master:/runtime/objc-file.mm diff --git a/runtime/objc-file.mm b/runtime/objc-file.mm index 917b2bc..c7ff5ca 100644 --- a/runtime/objc-file.mm +++ b/runtime/objc-file.mm @@ -59,14 +59,21 @@ GETSECT(_getObjc2SelectorRefs, SEL, "__objc_selrefs"); GETSECT(_getObjc2MessageRefs, message_ref_t, "__objc_msgrefs"); GETSECT(_getObjc2ClassRefs, Class, "__objc_classrefs"); GETSECT(_getObjc2SuperRefs, Class, "__objc_superrefs"); -GETSECT(_getObjc2ClassList, classref_t, "__objc_classlist"); -GETSECT(_getObjc2NonlazyClassList, classref_t, "__objc_nlclslist"); -GETSECT(_getObjc2CategoryList, category_t *, "__objc_catlist"); -GETSECT(_getObjc2NonlazyCategoryList, category_t *, "__objc_nlcatlist"); -GETSECT(_getObjc2ProtocolList, protocol_t *, "__objc_protolist"); +GETSECT(_getObjc2ClassList, classref_t const, "__objc_classlist"); +GETSECT(_getObjc2NonlazyClassList, classref_t const, "__objc_nlclslist"); +GETSECT(_getObjc2CategoryList, category_t * const, "__objc_catlist"); +GETSECT(_getObjc2CategoryList2, category_t * const, "__objc_catlist2"); +GETSECT(_getObjc2NonlazyCategoryList, category_t * const, "__objc_nlcatlist"); +GETSECT(_getObjc2ProtocolList, protocol_t * const, "__objc_protolist"); GETSECT(_getObjc2ProtocolRefs, protocol_t *, "__objc_protorefs"); GETSECT(getLibobjcInitializers, UnsignedInitializer, "__objc_init_func"); +uint32_t *getLibobjcInitializerOffsets(const headerType *mhdr, size_t *outCount) { + unsigned long byteCount = 0; + uint32_t *offsets = (uint32_t *)getsectiondata(mhdr, "__TEXT", "__objc_init_offs", &byteCount); + if (outCount) *outCount = byteCount / sizeof(uint32_t); + return offsets; +} objc_image_info * _getObjcImageInfo(const headerType *mhdr, size_t *outBytes)