diff options
author | Juan Linietsky <reduzio@gmail.com> | 2015-05-07 20:03:25 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2015-05-07 20:03:25 -0300 |
commit | 7c4a35496a350b3728be0818ada90a07d1c80328 (patch) | |
tree | 026961c07023bddce1bdd5f594d4a407f33e452b | |
parent | deba45ebf781eaf12964d530336b72b2fd78f2a5 (diff) | |
parent | 93095014fd87f1a33bdeaeb1f05eaab9342320bc (diff) |
Merge pull request #1844 from daltomi/SIGSEGV
Fix segment violation MINIZIP_ENABLED
-rw-r--r-- | core/io/file_access_pack.cpp | 4 | ||||
-rw-r--r-- | main/main.cpp | 17 |
2 files changed, 16 insertions, 5 deletions
diff --git a/core/io/file_access_pack.cpp b/core/io/file_access_pack.cpp index bf1211f2b3..339a6d0528 100644 --- a/core/io/file_access_pack.cpp +++ b/core/io/file_access_pack.cpp @@ -92,7 +92,9 @@ void PackedData::add_path(const String& pkg_path, const String& path, uint64_t o void PackedData::add_pack_source(PackSource *p_source) { - sources.push_back(p_source); + if (p_source != NULL) { + sources.push_back(p_source); + } }; PackedData *PackedData::singleton=NULL; diff --git a/main/main.cpp b/main/main.cpp index aa4a4b8919..1469ce4618 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -251,7 +251,14 @@ Error Main::setup(const char *execpath,int argc, char *argv[],bool p_second_phas packed_data = memnew(PackedData); #ifdef MINIZIP_ENABLED + + //XXX: always get_singleton() == 0x0 zip_packed_data = ZipArchive::get_singleton(); + //TODO: remove this temporary fix + if (!zip_packed_data) { + zip_packed_data = memnew(ZipArchive); + } + packed_data->add_pack_source(zip_packed_data); #endif @@ -748,10 +755,12 @@ Error Main::setup(const char *execpath,int argc, char *argv[],bool p_second_phas if (file_access_network_client) memdelete(file_access_network_client); -#ifdef MINIZIP_ENABLED - if (zip_packed_data) - memdelete( zip_packed_data ); -#endif +// Note 1: *zip_packed_data live into *packed_data +// Note 2: PackedData::~PackedData destroy this. +//#ifdef MINIZIP_ENABLED +// if (zip_packed_data) +// memdelete( zip_packed_data ); +//#endif unregister_core_types(); |