travis: update
[m6w6/ext-psi] / src / error.c
index 486867bbfb1364338522a9dae218598b077c5c59..46972f5cb660601923d82f58e6580ac89117bcdf 100644 (file)
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *******************************************************************************/
 
-#include "php_psi_stdinc.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#else
+# include "php_config.h"
+#endif
 #include "data.h"
 
 /* zend_error_cb */
@@ -73,8 +77,15 @@ void psi_error_wrapper(struct psi_data *context, struct psi_token *t, int type,
        psi_verror(type, fn, ln, msg, argv);
        va_end(argv);
 
+       va_start(argv, msg);
+       PSI_DEBUG_LOCK(context,
+                       PSI_DEBUG_PRINTV(context, msg, argv);
+                       PSI_DEBUG_PRINT(context, "\n");
+       );
+       va_end(argv);
+
        if (context) {
-               strlcpy(context->last_error, PG(last_error_message),
+               strlcpy(context->last_error, PG(last_error_message)->val,
                                sizeof(context->last_error));
        }
 }
@@ -90,5 +101,7 @@ void psi_error(int type, const char *fn, unsigned ln, const char *msg, ...)
 
 void psi_verror(int type, const char *fn, unsigned ln, const char *msg, va_list argv)
 {
-       zend_error_cb(type, fn, ln, msg, argv);
+       zend_string *message = zend_vstrpprintf(0, msg, argv);
+       zend_error_cb(type, fn, ln, message);
+       zend_string_release(message);
 }