From 8d1e51af7ce345a3a4e82620b9214d6ca43a8712 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 12 Jun 2017 12:26:19 +0200 Subject: [PATCH] Make archive_file_7z.c less dependent on 7zip source files --- Makefile.common | 1 - deps/7zip/7zAlloc.c | 32 ---------------------- deps/7zip/7zAlloc.h | 23 ---------------- deps/7zip/Types.h | 19 ------------- griffin/griffin.c | 1 - libretro-common/file/archive_file_7z.c | 38 ++++++++++++++++++++------ 6 files changed, 29 insertions(+), 85 deletions(-) delete mode 100644 deps/7zip/7zAlloc.c delete mode 100644 deps/7zip/7zAlloc.h diff --git a/Makefile.common b/Makefile.common index c033de6746..e5b26484a1 100644 --- a/Makefile.common +++ b/Makefile.common @@ -1069,7 +1069,6 @@ ifeq ($(HAVE_7ZIP),1) HAVE_COMPRESSION = 1 DEFINES += -DHAVE_7ZIP 7ZOBJ = $(DEPS_DIR)/7zip/7zIn.o \ - $(DEPS_DIR)/7zip/7zAlloc.o \ $(DEPS_DIR)/7zip/Bra86.o \ $(DEPS_DIR)/7zip/7zFile.o \ $(DEPS_DIR)/7zip/7zStream.o \ diff --git a/deps/7zip/7zAlloc.c b/deps/7zip/7zAlloc.c deleted file mode 100644 index 2113657ace..0000000000 --- a/deps/7zip/7zAlloc.c +++ /dev/null @@ -1,32 +0,0 @@ -/* 7zAlloc.c -- Allocation functions - 2010-10-29 : Igor Pavlov : Public domain */ - -#include "7zAlloc.h" - -void *SzAlloc(void *p, size_t size) -{ - (void)p; - if (size == 0) - return 0; - return malloc(size); -} - -void SzFree(void *p, void *address) -{ - (void)p; - free(address); -} - -void *SzAllocTemp(void *p, size_t size) -{ - (void)p; - if (size == 0) - return 0; - return malloc(size); -} - -void SzFreeTemp(void *p, void *address) -{ - (void)p; - free(address); -} diff --git a/deps/7zip/7zAlloc.h b/deps/7zip/7zAlloc.h deleted file mode 100644 index c8c77d19c5..0000000000 --- a/deps/7zip/7zAlloc.h +++ /dev/null @@ -1,23 +0,0 @@ -/* 7zAlloc.h -- Allocation functions -2010-10-29 : Igor Pavlov : Public domain */ - -#ifndef __7Z_ALLOC_H -#define __7Z_ALLOC_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -void *SzAlloc(void *p, size_t size); -void SzFree(void *p, void *address); - -void *SzAllocTemp(void *p, size_t size); -void SzFreeTemp(void *p, void *address); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/deps/7zip/Types.h b/deps/7zip/Types.h index 5cbed1e18e..ee60fccb60 100644 --- a/deps/7zip/Types.h +++ b/deps/7zip/Types.h @@ -60,29 +60,10 @@ typedef int Bool; #define True 1 #define False 0 - -#ifdef _WIN32 -#define MY_STD_CALL __stdcall -#else -#define MY_STD_CALL -#endif - #ifdef _MSC_VER - -#if _MSC_VER >= 1300 -#define MY_NO_INLINE __declspec(noinline) -#else -#define MY_NO_INLINE -#endif - -#define MY_CDECL __cdecl #define MY_FAST_CALL __fastcall - #else - -#define MY_CDECL #define MY_FAST_CALL - #endif diff --git a/griffin/griffin.c b/griffin/griffin.c index 0ba72892cb..16ffba29a5 100644 --- a/griffin/griffin.c +++ b/griffin/griffin.c @@ -1087,7 +1087,6 @@ DEPENDENCIES #ifdef HAVE_7ZIP #include "../deps/7zip/7zIn.c" -#include "../deps/7zip/7zAlloc.c" #include "../deps/7zip/Bra86.c" #include "../deps/7zip/7zFile.c" #include "../deps/7zip/7zStream.c" diff --git a/libretro-common/file/archive_file_7z.c b/libretro-common/file/archive_file_7z.c index 09329a3a88..99f3e66c22 100644 --- a/libretro-common/file/archive_file_7z.c +++ b/libretro-common/file/archive_file_7z.c @@ -32,7 +32,6 @@ #include #include #include "../../deps/7zip/7z.h" -#include "../../deps/7zip/7zAlloc.h" #include "../../deps/7zip/7zCrc.h" #include "../../deps/7zip/7zFile.h" @@ -53,6 +52,27 @@ struct sevenzip_context_t { file_archive_file_handle_t *handle; }; +static void *sevenzip_stream_alloc_impl(void *p, size_t size) +{ + if (size == 0) + return 0; + return malloc(size); +} + +static void sevenzip_stream_free_impl(void *p, void *address) +{ + (void)p; + free(address); +} + +static void *sevenzip_stream_alloc_tmp_impl(void *p, size_t size) +{ + (void)p; + if (size == 0) + return 0; + return malloc(size); +} + static void* sevenzip_stream_new(void) { struct sevenzip_context_t *sevenzip_context = @@ -60,10 +80,10 @@ static void* sevenzip_stream_new(void) /* These are the allocation routines - currently using * the non-standard 7zip choices. */ - sevenzip_context->allocImp.Alloc = SzAlloc; - sevenzip_context->allocImp.Free = SzFree; - sevenzip_context->allocTempImp.Alloc = SzAllocTemp; - sevenzip_context->allocTempImp.Free = SzFreeTemp; + sevenzip_context->allocImp.Alloc = sevenzip_stream_alloc_impl; + sevenzip_context->allocImp.Free = sevenzip_stream_free_impl; + sevenzip_context->allocTempImp.Alloc = sevenzip_stream_alloc_tmp_impl; + sevenzip_context->allocTempImp.Free = sevenzip_stream_free_impl; sevenzip_context->block_index = 0xFFFFFFFF; sevenzip_context->output = NULL; sevenzip_context->handle = NULL; @@ -109,10 +129,10 @@ static int sevenzip_file_read( /*These are the allocation routines. * Currently using the non-standard 7zip choices. */ - allocImp.Alloc = SzAlloc; - allocImp.Free = SzFree; - allocTempImp.Alloc = SzAllocTemp; - allocTempImp.Free = SzFreeTemp; + allocImp.Alloc = sevenzip_stream_alloc_impl; + allocImp.Free = sevenzip_stream_free_impl; + allocTempImp.Alloc = sevenzip_stream_alloc_tmp_impl; + allocTempImp.Free = sevenzip_stream_free_impl; /* Could not open 7zip archive? */ if (InFile_Open(&archiveStream.file, path))