(7zip) Clean up some 7z code

This commit is contained in:
twinaphex 2014-10-22 07:47:21 +02:00
parent a4cb7791f8
commit e6c365c156
2 changed files with 5 additions and 48 deletions

44
deps/7zip/7zAlloc.c vendored
View File

@ -3,43 +3,17 @@
#include "7zAlloc.h" #include "7zAlloc.h"
/* #define _SZ_ALLOC_DEBUG */
/* use _SZ_ALLOC_DEBUG to debug alloc/free operations */
#ifdef _SZ_ALLOC_DEBUG
#ifdef _WIN32
#include <windows.h>
#endif
#include <stdio.h>
int g_allocCount = 0;
int g_allocCountTemp = 0;
#endif
void *SzAlloc(void *p, size_t size) void *SzAlloc(void *p, size_t size)
{ {
p = p; p = p;
if (size == 0) if (size == 0)
return 0; return 0;
#ifdef _SZ_ALLOC_DEBUG
fprintf(stderr, "\nAlloc %10d bytes; count = %10d", size, g_allocCount);
g_allocCount++;
#endif
return malloc(size); return malloc(size);
} }
void SzFree(void *p, void *address) void SzFree(void *p, void *address)
{ {
p = p; p = p;
#ifdef _SZ_ALLOC_DEBUG
if (address != 0)
{
g_allocCount--;
fprintf(stderr, "\nFree; count = %10d", g_allocCount);
}
#endif
free(address); free(address);
} }
@ -48,29 +22,11 @@ void *SzAllocTemp(void *p, size_t size)
p = p; p = p;
if (size == 0) if (size == 0)
return 0; return 0;
#ifdef _SZ_ALLOC_DEBUG
fprintf(stderr, "\nAlloc_temp %10d bytes; count = %10d", size, g_allocCountTemp);
g_allocCountTemp++;
#ifdef _WIN32
return HeapAlloc(GetProcessHeap(), 0, size);
#endif
#endif
return malloc(size); return malloc(size);
} }
void SzFreeTemp(void *p, void *address) void SzFreeTemp(void *p, void *address)
{ {
p = p; p = p;
#ifdef _SZ_ALLOC_DEBUG
if (address != 0)
{
g_allocCountTemp--;
fprintf(stderr, "\nFree_temp; count = %10d", g_allocCountTemp);
}
#ifdef _WIN32
HeapFree(GetProcessHeap(), 0, address);
return;
#endif
#endif
free(address); free(address);
} }

9
deps/7zip/7zBuf2.c vendored
View File

@ -21,12 +21,13 @@ int DynBuf_Write(CDynBuf *p, const uint8_t *buf, size_t size, ISzAlloc *alloc)
{ {
if (size > p->size - p->pos) if (size > p->size - p->pos)
{ {
size_t newSize = p->pos + size; size_t current_size = p->pos + size;
uint8_t *data; size_t newSize = (current_size) + (current_size / 4);
newSize += newSize / 4; uint8_t *data = (uint8_t *)alloc->Alloc(alloc, newSize);
data = (uint8_t *)alloc->Alloc(alloc, newSize);
if (data == 0) if (data == 0)
return 0; return 0;
p->size = newSize; p->size = newSize;
memcpy(data, p->data, p->pos); memcpy(data, p->data, p->pos);
alloc->Free(alloc, p->data); alloc->Free(alloc, p->data);