]> granicus.if.org Git - php/commitdiff
Added function to check error and return null if error is set.
authorDaniel Persson <daniel.persson@textalk.se>
Mon, 7 Sep 2015 20:15:23 +0000 (22:15 +0200)
committerAnatol Belski <ab@php.net>
Fri, 8 Apr 2016 10:31:19 +0000 (12:31 +0200)
ext/intl/intl_data.h

index 12e0a9924e826c8fc0a9ff9ca53d180e6a39b302..74b7092fbb2eac94faa9487fa8941f86ccdba038 100644 (file)
@@ -45,7 +45,7 @@ typedef struct _intl_data {
        obj = Z_##oclass##_P( object );                                                                                         \
     intl_error_reset( INTL_DATA_ERROR_P(obj) );                                                \
 
-/* Check status by error code, if error - exit */
+/* Check status by error code, if error return false */
 #define INTL_CHECK_STATUS(err, msg)                                                                                    \
     intl_error_set_code( NULL, (err) );                                                        \
     if( U_FAILURE((err)) )                                                                                                     \
@@ -54,6 +54,16 @@ typedef struct _intl_data {
         RETURN_FALSE;                                                                                                          \
     }
 
+/* Check status by error code, if error return null */
+#define INTL_CHECK_STATUS_OR_NULL(err, msg)                     \
+    intl_error_set_code( NULL, (err) );             \
+    if( U_FAILURE((err)) )                          \
+    {                                   \
+        intl_error_set_custom_msg( NULL, msg, 0 );        \
+        RETURN_NULL();                           \
+    }
+
+
 /* Check status in object, if error return false */
 #define INTL_METHOD_CHECK_STATUS(obj, msg)                                                                                     \
     intl_error_set_code( NULL, INTL_DATA_ERROR_CODE((obj)) );                          \