- if (objc_method *toCYON = class_getInstanceMethod(_class, sel))
- string = reinterpret_cast<NSString *(*)(id, SEL, bool)>(method_getImplementation(toCYON))(value, sel, objective);
+ if (class_isMetaClass(_class)) {
+ const char *name(class_getName(value));
+ if (class_isMetaClass(value))
+ string = [NSString stringWithFormat:@"object_getClass(%s)", name];
+ else
+ string = [NSString stringWithUTF8String:name];
+ } else if (objc_method *toCYON = class_getInstanceMethod(_class, sel))
+ string = reinterpret_cast<NSString *(*)(id, SEL, bool, std::set<void *> &)>(method_getImplementation(toCYON))(value, sel, objective, objects);