From 817c05d8597cb51d2a22faf7e2f714bce2783e35 Mon Sep 17 00:00:00 2001 From: Andrei Dabija Date: Mon, 23 Jun 2025 08:22:23 +0300 Subject: [PATCH] Fix zlib issues (#28) * create internal compression component * use the new miniz code * Update README.md --- README.md | 2 +- .../miniz/{miniz.c => GA_Zip.cpp} | 22 ++++++------------- source/gameanalytics/GAUtilities.cpp | 4 +++- 3 files changed, 11 insertions(+), 17 deletions(-) rename source/dependencies/miniz/{miniz.c => GA_Zip.cpp} (99%) diff --git a/README.md b/README.md index 04a2cb97..fddbfb38 100644 --- a/README.md +++ b/README.md @@ -123,7 +123,7 @@ Example: Example: ``` c++ - gameanalytics::GameAnalytics::initialize("", "", ""); ``` ### Send events diff --git a/source/dependencies/miniz/miniz.c b/source/dependencies/miniz/GA_Zip.cpp similarity index 99% rename from source/dependencies/miniz/miniz.c rename to source/dependencies/miniz/GA_Zip.cpp index 2b787fbf..31f5841f 100644 --- a/source/dependencies/miniz/miniz.c +++ b/source/dependencies/miniz/GA_Zip.cpp @@ -219,9 +219,9 @@ #define MINIZ_HAS_64BIT_REGISTERS 1 #endif -#ifdef __cplusplus -extern "C" { -#endif +namespace gameanalytics { +namespace utilities { +namespace zip { // ------------------- zlib-style API Definitions. @@ -919,10 +919,6 @@ mz_uint32 tdefl_get_adler32(tdefl_compressor *d); mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int strategy); #endif // #ifndef MINIZ_NO_ZLIB_APIS -#ifdef __cplusplus -} -#endif - #endif // MINIZ_HEADER_INCLUDED // ------------------- End of Header: Implementation follows. (If you only want the header, define MINIZ_HEADER_FILE_ONLY.) @@ -968,10 +964,6 @@ typedef unsigned char mz_validate_uint64[sizeof(mz_uint64)==8 ? 1 : -1]; #define MZ_FORCEINLINE inline #endif -#ifdef __cplusplus - extern "C" { -#endif - // ------------------- zlib-style API's mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf_len) @@ -4882,12 +4874,12 @@ void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char #endif // #ifndef MINIZ_NO_ARCHIVE_APIS -#ifdef __cplusplus -} -#endif - #endif // MINIZ_HEADER_FILE_ONLY +} // namespace zip +} // namespace utilities +} // namespace gameanalytics + /* This is free and unencumbered software released into the public domain. diff --git a/source/gameanalytics/GAUtilities.cpp b/source/gameanalytics/GAUtilities.cpp index bbb1807c..2f98626e 100644 --- a/source/gameanalytics/GAUtilities.cpp +++ b/source/gameanalytics/GAUtilities.cpp @@ -20,12 +20,14 @@ // From crypto #define MINIZ_HEADER_FILE_ONLY -#include "miniz.c" +#include "GA_Zip.cpp" namespace gameanalytics { namespace utilities { + using namespace zip; + std::string printArray(StringVector const& v, std::string const& delim) { if(v.empty())