Fix crash when exporting projects with shared libraries

(cherry picked from commit 680bcef825)
This commit is contained in:
Haoyu Qiu 2022-03-23 13:53:32 +08:00 committed by Rémi Verschelde
parent 113102aa51
commit 50ba2d3051
3 changed files with 9 additions and 2 deletions

View file

@ -145,6 +145,10 @@ struct DirAccessRef {
operator bool() const { return f != nullptr; }
DirAccess *f;
DirAccessRef(DirAccess *fa) { f = fa; }
DirAccessRef(DirAccessRef &&other) {
f = other.f;
other.f = nullptr;
}
~DirAccessRef() {
if (f) {
memdelete(f);

View file

@ -186,6 +186,10 @@ struct FileAccessRef {
FileAccess *f;
operator FileAccess *() { return f; }
FileAccessRef(FileAccess *fa) { f = fa; }
FileAccessRef(FileAccessRef &&other) {
f = other.f;
other.f = nullptr;
}
~FileAccessRef() {
if (f) {
memdelete(f);

View file

@ -1682,8 +1682,7 @@ Error EditorExportPlatformPC::export_project(const Ref<EditorExportPreset> &p_pr
}
if (err == OK && !so_files.empty()) {
//if shared object files, copy them
da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
// If shared object files, copy them.
for (int i = 0; i < so_files.size() && err == OK; i++) {
err = da->copy(so_files[i].path, p_path.get_base_dir().plus_file(so_files[i].path.get_file()));
if (err == OK) {