소스 검색

Merge pull request #202 from viest/dev

Fix: sheet call back value is null
viest 5 년 전
부모
커밋
0270e80e9f
1개의 변경된 파일7개의 추가작업 그리고 1개의 파일을 삭제
  1. 7 1
      kernel/read.c

+ 7 - 1
kernel/read.c

@@ -289,6 +289,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));
+    ZVAL_NULL(&args[2]);
+
+    if (value == NULL) {
+        goto CALL_USER_FUNCTION;
+    }
 
     if (Z_TYPE_P(_callback_data->zv_type_t) != IS_ARRAY) {
         zend_long _long = 0; double _double = 0;
@@ -314,10 +319,11 @@ int sheet_cell_callback (size_t row, size_t col, const char *value, void *callba
             }
         }
 
-        ZVAL_NULL(&args[2]);
         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]);