aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/basetypes/MCObject.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/basetypes/MCObject.cc')
-rw-r--r--src/core/basetypes/MCObject.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/basetypes/MCObject.cc b/src/core/basetypes/MCObject.cc
index 1d8f0c27..7c1d83bb 100644
--- a/src/core/basetypes/MCObject.cc
+++ b/src/core/basetypes/MCObject.cc
@@ -2,7 +2,9 @@
#include <stdlib.h>
#include <typeinfo>
+#ifndef _MSC_VER
#include <cxxabi.h>
+#endif
#include <libetpan/libetpan.h>
#include <string.h>
#if __APPLE__
@@ -89,9 +91,13 @@ Object * Object::autorelease()
String * Object::className()
{
int status;
+#ifdef _MSC_VER
+ String * result = String::uniquedStringWithUTF8Characters(typeid(*this).name());
+#else
char * unmangled = abi::__cxa_demangle(typeid(* this).name(), NULL, NULL, &status);
String * result = String::uniquedStringWithUTF8Characters(unmangled);
free(unmangled);
+#endif
return result;
}