Runtime: provide inline friendly isa mask/shift variables for 1.0

<rdar://problem/16663586> provide a global isa mask so v-table dispatch doesn't have to call object_getClass

Swift SVN r16960
This commit is contained in:
Dave Zarzycki
2014-04-28 05:47:55 +00:00
parent 8c224c9d64
commit e5f7cddded
2 changed files with 13 additions and 2 deletions

View File

@@ -36,6 +36,7 @@
using namespace swift;
using namespace metadataimpl;
extern "C" const uintptr_t objc_debug_isa_class_mask;
extern "C" const ClassMetadata* object_getClass(const void *);
extern "C" const char* class_getName(const ClassMetadata*);
extern "C" const ClassMetadata* class_getSuperclass(const ClassMetadata*);
@@ -284,6 +285,9 @@ swift::swift_getClassMetadata(const void *object) {
}
#endif
size_t swift::swift_classMask = objc_debug_isa_class_mask;
uint8_t swift::swift_classShift = 0;
/// The primary entrypoint.
const void *
swift::swift_dynamicCastClass(const void *object,