summaryrefslogtreecommitdiffstats
path: root/core/extension
diff options
context:
space:
mode:
authorHaoyu Qiu <timothyqiu32@gmail.com>2023-03-08 12:30:37 +0800
committerHaoyu Qiu <timothyqiu32@gmail.com>2023-03-08 15:05:44 +0800
commit49400e0c1c2c745942133cd63daefad82608958c (patch)
tree3c152cc3d36f2306e4cbecc8584e3810bfd7d777 /core/extension
parent013a45706897af989703b944c7cd5f4f58a6c060 (diff)
downloadredot-engine-49400e0c1c2c745942133cd63daefad82608958c.tar.gz
Fix crash when dumping extension API in a non-writable directory
Diffstat (limited to 'core/extension')
-rw-r--r--core/extension/extension_api_dump.cpp1
-rw-r--r--core/extension/make_interface_dumper.py1
2 files changed, 2 insertions, 0 deletions
diff --git a/core/extension/extension_api_dump.cpp b/core/extension/extension_api_dump.cpp
index e26ead6d8c..79b0ebc641 100644
--- a/core/extension/extension_api_dump.cpp
+++ b/core/extension/extension_api_dump.cpp
@@ -1052,6 +1052,7 @@ void GDExtensionAPIDump::generate_extension_json_file(const String &p_path) {
String text = json->stringify(api, "\t", false) + "\n";
Ref<FileAccess> fa = FileAccess::open(p_path, FileAccess::WRITE);
+ ERR_FAIL_COND_MSG(fa.is_null(), vformat("Cannot open file '%s' for writing.", p_path));
fa->store_string(text);
}
diff --git a/core/extension/make_interface_dumper.py b/core/extension/make_interface_dumper.py
index a8af0e9ff6..a604112d13 100644
--- a/core/extension/make_interface_dumper.py
+++ b/core/extension/make_interface_dumper.py
@@ -27,6 +27,7 @@ class GDExtensionInterfaceDump {
public:
static void generate_gdextension_interface_file(const String &p_path) {
Ref<FileAccess> fa = FileAccess::open(p_path, FileAccess::WRITE);
+ ERR_FAIL_COND_MSG(fa.is_null(), vformat("Cannot open file '%s' for writing.", p_path));
CharString cs(gdextension_interface_dump);
fa->store_buffer((const uint8_t *)cs.ptr(), cs.length());
};