flush
[m6w6/ext-psi] / src / module.c
index c45ddb0014ec0908c55c795b151aea6b3a9b285a..4df3e110a4c65c49323d2c0cae64ca22c8686999 100644 (file)
@@ -3,42 +3,45 @@
 #include "config.h"
 #endif
 
-#include <jit/jit.h>
-
 #include "php.h"
 #include "php_ini.h"
 #include "ext/standard/info.h"
+
 #include "php_psi.h"
 
+#include "libjit.h"
+
 ZEND_DECLARE_MODULE_GLOBALS(psi);
 
 PHP_INI_BEGIN()
-    STD_PHP_INI_ENTRY("psi.directory", "psis", PHP_INI_ALL, OnUpdateString, directory, zend_psi_globals, psi_globals)
+       STD_PHP_INI_ENTRY("psi.directory", "psis", PHP_INI_ALL, OnUpdateString, directory, zend_psi_globals, psi_globals)
 PHP_INI_END();
 
-PHP_MINIT_FUNCTION(psi)
+void psi_error(int type, const char *msg, ...)
 {
-       jit_context_t ctx;
+       char buf[0x1000];
+       va_list argv;
 
-       REGISTER_INI_ENTRIES();
+       va_start(argv, msg);
+       vslprintf(buf, 0x1000, msg, argv);
+       va_end(argv);
 
-       jit_init();
+       php_error(type, buf);
+}
 
-       if (!(ctx = jit_context_create())) {
-               zend_error(E_WARNING, "Could not initialize libjit!");
-               return FAILURE;
-       }
+PHP_MINIT_FUNCTION(psi)
+{
+       REGISTER_INI_ENTRIES();
 
-       PSI_G(context) = ctx;
+       PSI_ContextInit(&PSI_G(context), PSI_Libjit(), psi_error);
+       PSI_ContextBuild(&PSI_G(context), PSI_G(directory));
 
        return SUCCESS;
 }
 PHP_MSHUTDOWN_FUNCTION(psi)
 {
-       jit_context_t *ctx = PSI_G(context);
+       PSI_ContextDtor(&PSI_G(context));
 
-       jit_context_destroy(ctx);
-       
        UNREGISTER_INI_ENTRIES();
 
        return SUCCESS;