[macOS export] Fix lipo file handling.

This commit is contained in:
bruvzg 2023-06-16 11:07:56 +03:00
parent 9c41c4ecb6
commit c7f4e3fd25

View file

@ -45,25 +45,27 @@ bool LipO::create_file(const String &p_output_path, const PackedStringArray &p_f
uint64_t max_size = 0; uint64_t max_size = 0;
for (int i = 0; i < p_files.size(); i++) { for (int i = 0; i < p_files.size(); i++) {
MachO mh; {
if (!mh.open_file(p_files[i])) { MachO mh;
ERR_FAIL_V_MSG(false, vformat("LipO: Invalid MachO file: \"%s.\"", p_files[i])); if (!mh.open_file(p_files[i])) {
ERR_FAIL_V_MSG(false, vformat("LipO: Invalid MachO file: \"%s\".", p_files[i]));
}
FatArch arch;
arch.cputype = mh.get_cputype();
arch.cpusubtype = mh.get_cpusubtype();
arch.offset = 0;
arch.size = mh.get_size();
arch.align = mh.get_align();
max_size += arch.size;
archs.push_back(arch);
} }
FatArch arch;
arch.cputype = mh.get_cputype();
arch.cpusubtype = mh.get_cpusubtype();
arch.offset = 0;
arch.size = mh.get_size();
arch.align = mh.get_align();
max_size += arch.size;
archs.push_back(arch);
Ref<FileAccess> fb = FileAccess::open(p_files[i], FileAccess::READ); Ref<FileAccess> fb = FileAccess::open(p_files[i], FileAccess::READ);
if (fb.is_null()) { if (fb.is_null()) {
close(); close();
ERR_FAIL_V_MSG(false, vformat("LipO: Can't open file: \"%s.\"", p_files[i])); ERR_FAIL_V_MSG(false, vformat("LipO: Can't open file: \"%s\".", p_files[i]));
} }
} }
@ -100,7 +102,7 @@ bool LipO::create_file(const String &p_output_path, const PackedStringArray &p_f
Ref<FileAccess> fb = FileAccess::open(p_files[i], FileAccess::READ); Ref<FileAccess> fb = FileAccess::open(p_files[i], FileAccess::READ);
if (fb.is_null()) { if (fb.is_null()) {
close(); close();
ERR_FAIL_V_MSG(false, vformat("LipO: Can't open file: \"%s.\"", p_files[i])); ERR_FAIL_V_MSG(false, vformat("LipO: Can't open file: \"%s\".", p_files[i]));
} }
uint64_t cur = fa->get_position(); uint64_t cur = fa->get_position();
for (uint64_t j = cur; j < archs[i].offset; j++) { for (uint64_t j = cur; j < archs[i].offset; j++) {