|
|
@@ -43,3 +43,52 @@ void operator delete(void *p)
|
|
|
assert(0);
|
|
|
}
|
|
|
#endif
|
|
|
+
|
|
|
+#ifdef WITH_SQSTDCPP
|
|
|
+#include <stdio.h>
|
|
|
+#include <stdlib.h>
|
|
|
+
|
|
|
+// MSVC uses __cdecl calling convention for new/delete :-O
|
|
|
+#ifdef _MSC_VER
|
|
|
+# define NEWDEL_CALL __cdecl
|
|
|
+#else
|
|
|
+# define NEWDEL_CALL
|
|
|
+#endif
|
|
|
+
|
|
|
+extern "C" void __cxa_pure_virtual ()
|
|
|
+{
|
|
|
+ puts("__cxa_pure_virtual called\n");
|
|
|
+ abort ();
|
|
|
+}
|
|
|
+
|
|
|
+void * NEWDEL_CALL operator new (size_t size)
|
|
|
+{
|
|
|
+ void *p = malloc (size);
|
|
|
+ if(!p)
|
|
|
+ {
|
|
|
+ puts("not enough memory\n");
|
|
|
+ abort ();
|
|
|
+ }
|
|
|
+ return p;
|
|
|
+}
|
|
|
+
|
|
|
+void * NEWDEL_CALL operator new [] (size_t size)
|
|
|
+{
|
|
|
+ return ::operator new(size);
|
|
|
+}
|
|
|
+
|
|
|
+void NEWDEL_CALL operator delete (void *p)
|
|
|
+{
|
|
|
+ if (p) free (p);
|
|
|
+}
|
|
|
+
|
|
|
+void NEWDEL_CALL operator delete [] (void *p)
|
|
|
+{
|
|
|
+ if (p) free (p);
|
|
|
+}
|
|
|
+
|
|
|
+void NEWDEL_CALL operator delete (void *p, size_t)
|
|
|
+{
|
|
|
+ if (p) free (p);
|
|
|
+}
|
|
|
+#endif // WITH_MYSTDCPP
|