@@ -369,11 +369,14 @@ - (instancetype)of_initWithIvar: (struct objc_ivar *)ivar { self = [super init]; @try { - _name = [[OFString alloc] initWithUTF8String: ivar->name]; + if (ivar->name != NULL) + _name = [[OFString alloc] + initWithUTF8String: ivar->name]; + _typeEncoding = ivar->type; _offset = ivar->offset; } @catch (id e) { [self release]; @throw e; @@ -388,12 +391,12 @@ @try { const char *name = ivar_getName(ivar); if (name != NULL) - _name = [[OFString alloc] initWithUTF8String: - ivar_getName(ivar)]; + _name = [[OFString alloc] initWithUTF8String: name]; + _typeEncoding = ivar_getTypeEncoding(ivar); _offset = ivar_getOffset(ivar); } @catch (id e) { [self release]; @throw e;