Jelajahi Sumber

Fix: sheet call back value is null

viest 5 tahun lalu
induk
melakukan
eb6714ed72
1 mengubah file dengan 7 tambahan dan 0 penghapusan
  1. 7 0
      kernel/read.c

+ 7 - 0
kernel/read.c

@@ -290,6 +290,11 @@ int sheet_cell_callback (size_t row, size_t col, const char *value, void *callba
     ZVAL_LONG(&args[0], (row - 1));
     ZVAL_LONG(&args[1], (col - 1));
 
+    if (value == NULL) {
+        ZVAL_NULL(&args[2]);
+        goto CALL_USER_FUNCTION;
+    }
+
     if (Z_TYPE_P(_callback_data->zv_type_t) != IS_ARRAY) {
         zend_long _long = 0; double _double = 0;
 
@@ -318,6 +323,8 @@ int sheet_cell_callback (size_t row, size_t col, const char *value, void *callba
         data_to_custom_type(value, _type, &args[2]);
     }
 
+    CALL_USER_FUNCTION:
+
     zend_call_function(_callback_data->fci, _callback_data->fci_cache);
 
     zval_ptr_dtor(&args[2]);