소스 검색

Feat: exception in const memory mode, you cannot modify the placed cells

viest 5 년 전
부모
커밋
63011431af
1개의 변경된 파일8개의 추가작업 그리고 1개의 파일을 삭제
  1. 8 1
      kernel/write.c

+ 8 - 1
kernel/write.c

@@ -201,7 +201,14 @@ void auto_filter(zend_string *range, xls_resource_write_t *res)
  */
 void merge_cells(zend_string *range, zend_string *value, xls_resource_write_t *res, lxw_format *format)
 {
-    worksheet_merge_range(res->worksheet, RANGE(ZSTR_VAL(range)), ZSTR_VAL(value), format);
+    int error = worksheet_merge_range(res->worksheet, RANGE(ZSTR_VAL(range)), ZSTR_VAL(value), format);
+
+    // Cells that have been placed cannot be modified using optimization mode
+    if(res->worksheet->optimize && error == LXW_ERROR_WORKSHEET_INDEX_OUT_OF_RANGE)
+    {
+        zend_throw_exception(vtiful_exception_ce, "In const memory mode, you cannot modify the placed cells", 170);
+        return;
+    }
 }
 
 /*