diff options
author | Max Horn | 2009-02-24 05:39:10 +0000 |
---|---|---|
committer | Max Horn | 2009-02-24 05:39:10 +0000 |
commit | 1e4db221e5fe6867e4558528b0d93db2c1de4170 (patch) | |
tree | c7f9e11c2fccd31774fbcd41d3e462935d79816e /engines/sci/scicore | |
parent | 47bc0d787949faab3705d3e04388d6f0d4892609 (diff) | |
download | scummvm-rg350-1e4db221e5fe6867e4558528b0d93db2c1de4170.tar.gz scummvm-rg350-1e4db221e5fe6867e4558528b0d93db2c1de4170.tar.bz2 scummvm-rg350-1e4db221e5fe6867e4558528b0d93db2c1de4170.zip |
SCI: Moved engines/sci/include/sci_memory.h and engines/sci/scicore/sci_memory.cpp into engines/sci/; moved macros from the header into the source file
svn-id: r38832
Diffstat (limited to 'engines/sci/scicore')
-rw-r--r-- | engines/sci/scicore/decompress0.cpp | 2 | ||||
-rw-r--r-- | engines/sci/scicore/decompress01.cpp | 2 | ||||
-rw-r--r-- | engines/sci/scicore/decompress1.cpp | 2 | ||||
-rw-r--r-- | engines/sci/scicore/decompress11.cpp | 2 | ||||
-rw-r--r-- | engines/sci/scicore/resource.cpp | 2 | ||||
-rw-r--r-- | engines/sci/scicore/resource_map.cpp | 2 | ||||
-rw-r--r-- | engines/sci/scicore/resource_patch.cpp | 2 | ||||
-rw-r--r-- | engines/sci/scicore/sci_memory.cpp | 160 | ||||
-rw-r--r-- | engines/sci/scicore/sciconsole.cpp | 2 |
9 files changed, 8 insertions, 168 deletions
diff --git a/engines/sci/scicore/decompress0.cpp b/engines/sci/scicore/decompress0.cpp index 3863bfa508..2f6bcd117f 100644 --- a/engines/sci/scicore/decompress0.cpp +++ b/engines/sci/scicore/decompress0.cpp @@ -30,7 +30,7 @@ #include "common/stream.h" #include "common/endian.h" -#include "sci/include/sci_memory.h" +#include "sci/sci_memory.h" #include "sci/include/sciresource.h" namespace Sci { diff --git a/engines/sci/scicore/decompress01.cpp b/engines/sci/scicore/decompress01.cpp index 2ae70aaddd..f318d7b197 100644 --- a/engines/sci/scicore/decompress01.cpp +++ b/engines/sci/scicore/decompress01.cpp @@ -28,7 +28,7 @@ #include "common/stream.h" #include "common/endian.h" -#include "sci/include/sci_memory.h" +#include "sci/sci_memory.h" #include "sci/include/sciresource.h" namespace Sci { diff --git a/engines/sci/scicore/decompress1.cpp b/engines/sci/scicore/decompress1.cpp index ccf8d1704f..7b9924f9ec 100644 --- a/engines/sci/scicore/decompress1.cpp +++ b/engines/sci/scicore/decompress1.cpp @@ -28,7 +28,7 @@ #include "common/stream.h" #include "common/util.h" -#include "sci/include/sci_memory.h" +#include "sci/sci_memory.h" #include "sci/include/sciresource.h" namespace Sci { diff --git a/engines/sci/scicore/decompress11.cpp b/engines/sci/scicore/decompress11.cpp index 4f7a74b20e..13364be262 100644 --- a/engines/sci/scicore/decompress11.cpp +++ b/engines/sci/scicore/decompress11.cpp @@ -27,7 +27,7 @@ #include "common/stream.h" -#include "sci/include/sci_memory.h" +#include "sci/sci_memory.h" #include "sci/include/sciresource.h" namespace Sci { diff --git a/engines/sci/scicore/resource.cpp b/engines/sci/scicore/resource.cpp index b1523f66b6..dc58db5a5e 100644 --- a/engines/sci/scicore/resource.cpp +++ b/engines/sci/scicore/resource.cpp @@ -30,7 +30,7 @@ #include "common/util.h" #include "sci/tools.h" -#include "sci/include/sci_memory.h" +#include "sci/sci_memory.h" #include "sci/include/sciresource.h" #include "sci/include/vocabulary.h" diff --git a/engines/sci/scicore/resource_map.cpp b/engines/sci/scicore/resource_map.cpp index 6406c60c98..e06fe11578 100644 --- a/engines/sci/scicore/resource_map.cpp +++ b/engines/sci/scicore/resource_map.cpp @@ -23,7 +23,7 @@ * */ -#include "sci/include/sci_memory.h" +#include "sci/sci_memory.h" #include "sci/include/sciresource.h" #include "sci/tools.h" diff --git a/engines/sci/scicore/resource_patch.cpp b/engines/sci/scicore/resource_patch.cpp index 8545987d8f..c062a2f782 100644 --- a/engines/sci/scicore/resource_patch.cpp +++ b/engines/sci/scicore/resource_patch.cpp @@ -27,7 +27,7 @@ #include "common/file.h" #include "sci/include/sciresource.h" -#include "sci/include/sci_memory.h" +#include "sci/sci_memory.h" namespace Sci { diff --git a/engines/sci/scicore/sci_memory.cpp b/engines/sci/scicore/sci_memory.cpp deleted file mode 100644 index 446c1bb1a9..0000000000 --- a/engines/sci/scicore/sci_memory.cpp +++ /dev/null @@ -1,160 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#include "common/util.h" -#include "sci/tools.h" -#include "sci/include/sci_memory.h" - -namespace Sci { - -void * sci_malloc(size_t size) { - void *res; - - ALLOC_MEM((res = malloc(size)), size, __FILE__, __LINE__, "") - return res; -} - - -void * sci_calloc(size_t num, size_t size) { - void *res; - - ALLOC_MEM((res = calloc(num, size)), num * size, __FILE__, __LINE__, "") - return res; -} - -void *sci_realloc(void *ptr, size_t size) { - void *res; - - ALLOC_MEM((res = realloc(ptr, size)), size, __FILE__, __LINE__, "") - return res; -} - -char *sci_strdup(const char *src) { - void *res; - - if (!src) { - fprintf(stderr, "_SCI_STRDUP() [%s (%s) : %u]\n", - __FILE__, "", __LINE__); - fprintf(stderr, " attempt to strdup NULL pointer\n"); - BREAKPOINT(); - } - ALLOC_MEM((res = strdup(src)), strlen(src), __FILE__, __LINE__, "") - - return (char*)res; -} - -char *sci_strndup(const char *src, size_t length) { - void *res; - char *strres; - size_t rlen = (int)MIN(strlen(src), length) + 1; - - if (!src) { - fprintf(stderr, "_SCI_STRNDUP() [%s (%s) : %u]\n", - __FILE__, "", __LINE__); - fprintf(stderr, " attempt to strndup NULL pointer\n"); - BREAKPOINT(); - } - ALLOC_MEM((res = malloc(rlen)), rlen, __FILE__, __LINE__, "") - - strres = (char *)res; - strncpy(strres, src, rlen); - strres[rlen - 1] = 0; - - return strres; -} - -//-------- Refcounting ---------- - -#define REFCOUNT_OVERHEAD (sizeof(uint32) * 3) -#define REFCOUNT_MAGIC_LIVE_1 0xebdc1741 -#define REFCOUNT_MAGIC_LIVE_2 0x17015ac9 -#define REFCOUNT_MAGIC_DEAD_1 0x11dead11 -#define REFCOUNT_MAGIC_DEAD_2 0x22dead22 - -#define REFCOUNT_CHECK(p) ((((uint32 *)(p))[-3] == REFCOUNT_MAGIC_LIVE_2) && (((uint32 *)(p))[-1] == REFCOUNT_MAGIC_LIVE_1)) - -#define REFCOUNT(p) (((uint32 *)p)[-2]) - -#undef TRACE_REFCOUNT - -extern void *sci_refcount_alloc(size_t length) { - uint32 *data = (uint32 *)sci_malloc(REFCOUNT_OVERHEAD + length); -#ifdef TRACE_REFCOUNT - fprintf(stderr, "[] REF: Real-alloc at %p\n", data); -#endif - data += 3; - - data[-1] = REFCOUNT_MAGIC_LIVE_1; - data[-3] = REFCOUNT_MAGIC_LIVE_2; - REFCOUNT(data) = 1; -#ifdef TRACE_REFCOUNT - fprintf(stderr, "[] REF: Alloc'd %p (ref=%d) OK=%d\n", data, REFCOUNT(data), - REFCOUNT_CHECK(data)); -#endif - return data; -} - -extern void *sci_refcount_incref(void *data) { - if (!REFCOUNT_CHECK(data)) { - BREAKPOINT(); - } else - REFCOUNT(data)++; - -#ifdef TRACE_REFCOUNT - fprintf(stderr, "[] REF: Inc'ing %p (now ref=%d)\n", data, REFCOUNT(data)); -#endif - return data; -} - -extern void sci_refcount_decref(void *data) { -#ifdef TRACE_REFCOUNT - fprintf(stderr, "[] REF: Dec'ing %p (prev ref=%d) OK=%d\n", data, REFCOUNT(data), - REFCOUNT_CHECK(data)); -#endif - if (!REFCOUNT_CHECK(data)) { - BREAKPOINT(); - } else if (--REFCOUNT(data) == 0) { - uint32 *fdata = (uint32 *)data; - - fdata[-1] = REFCOUNT_MAGIC_DEAD_1; - fdata[-3] = REFCOUNT_MAGIC_DEAD_2; - -#ifdef TRACE_REFCOUNT - fprintf(stderr, "[] REF: Freeing (%p)...\n", fdata - 3); -#endif - free(fdata - 3); -#ifdef TRACE_REFCOUNT - fprintf(stderr, "[] REF: Done.\n"); -#endif - } -} - -extern void *sci_refcount_memdup(void *data, size_t len) { - void *dest = sci_refcount_alloc(len); - memcpy(dest, data, len); - return dest; -} - -} // End of namespace Sci diff --git a/engines/sci/scicore/sciconsole.cpp b/engines/sci/scicore/sciconsole.cpp index 8db1b930fb..7b2aa3ce23 100644 --- a/engines/sci/scicore/sciconsole.cpp +++ b/engines/sci/scicore/sciconsole.cpp @@ -26,7 +26,7 @@ /* First part of the console implmentation: VM independent stuff */ /* Remember, it doesn't have to be fast. */ -#include "sci/include/sci_memory.h" +#include "sci/sci_memory.h" #include "sci/include/engine.h" namespace Sci { |