소스 검색

Make invalid cdb json show an error instead of ovewriting existing file

Leonardo Jeanteur 3 년 전
부모
커밋
3ec8483e36
2개의 변경된 파일32개의 추가작업 그리고 7개의 파일을 삭제
  1. 23 0
      bin/res/data.cdb
  2. 9 7
      hide/Ide.hx

+ 23 - 0
bin/res/data.cdb

@@ -0,0 +1,23 @@
+{
+	"sheets": [
+		{
+			"name": "hello",
+			"columns": [
+				{
+					"typeStr": "1",
+					"name": "dfb",
+					"kind": null
+				}
+			],
+			"lines": [
+				{sdfg
+					"dfb": "cvbf5s"
+				}
+			],
+			"separators": [],
+			"props": {}
+		}
+	],
+	"customTypes": [],
+	"compress": false
+}

+ 9 - 7
hide/Ide.hx

@@ -15,7 +15,7 @@ class Ide {
 	public var isWindows(get, never) : Bool;
 	public var isFocused(get, never) : Bool;
 
-	public var database : cdb.Database;
+	public var database : cdb.Database = new cdb.Database();
 	public var shaderLoader : hide.tools.ShaderLoader;
 	public var fileWatcher : hide.tools.FileWatcher;
 	public var isCDB = false;
@@ -768,16 +768,18 @@ class Ide {
 		var exists = fileExists(databaseFile);
 		if( checkExists && !exists )
 			return; // cancel load
-		database = new cdb.Database();
-		if( !exists ) return;
-		if( isDebugger ) {
-			database.load(getFile(databaseFile).toString());
-		} else try {
-			database.load(getFile(databaseFile).toString());
+		var loadedDatabase = new cdb.Database();
+		if( !exists ) {
+			database = loadedDatabase;
+			return;
+		}
+		try {
+			loadedDatabase.load(getFile(databaseFile).toString());
 		} catch( e : Dynamic ) {
 			error(e);
 			return;
 		}
+		database = loadedDatabase;
 		if( databaseDiff != null ) {
 			originDataBase = new cdb.Database();
 			originDataBase.load(getFile(databaseFile).toString());