]> git.saurik.com Git - cycript.git/blobdiff - Exception.hpp
While libedit requires me to damage rl_basic_word_break_characters, readline requires...
[cycript.git] / Exception.hpp
index 28283457fc6ced1e671b5373f11cb51958d3f04b..286fdeb3fc7ba44a29983ef34b2746a55eb1e0dc 100644 (file)
@@ -1,4 +1,4 @@
-/* Cycript - Error.hppution Server and Disassembler
+/* Cycript - Inlining/Optimizing JavaScript Compiler
  * Copyright (C) 2009  Jay Freeman (saurik)
 */
 
 #ifndef CYCRIPT_EXCEPTION_HPP
 #define CYCRIPT_EXCEPTION_HPP
 
+#ifdef CY_EXECUTE
 #include <JavaScriptCore/JSBase.h>
+#endif
 
 #include <apr_pools.h>
 #include "Standard.hpp"
 
 struct CYException {
+    virtual ~CYException() {
+    }
+
     virtual const char *PoolCString(apr_pool_t *pool) const = 0;
+#ifdef CY_EXECUTE
     virtual JSValueRef CastJSValue(JSContextRef context) const = 0;
+#endif
 };
 
 void CYThrow(const char *format, ...) _noreturn;
+
+#ifdef CY_EXECUTE
 void CYThrow(JSContextRef context, JSValueRef value);
+#endif
 
 #define CYTry \
     try
@@ -64,6 +74,8 @@ void CYThrow(JSContextRef context, JSValueRef value);
         return NULL; \
     }
 
+// XXX: fix this: _ is not safe; this is /not/ Menes ;P
+#undef _assert
 #define _assert(test, args...) do { \
     if (!(test)) \
         CYThrow("*** _assert(%s):%s(%u):%s [errno=%d]", #test, __FILE__, __LINE__, __FUNCTION__, errno); \