X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fmemory.c;h=bd3c609b860a429a81d4b01b97a1a2b0db33ba63;hb=bc1fa78a3bca3f391c4b8788d0cea937b9540c0a;hp=404bbc481b36a967e5fa04c94c406842afd14a0c;hpb=9df860ab2839447c7143bbe705a573df152d7734;p=flatwaifu.git diff --git a/src/memory.c b/src/memory.c index 404bbc4..bd3c609 100644 --- a/src/memory.c +++ b/src/memory.c @@ -15,28 +15,11 @@ * along with this program. If not, see . */ -#include "glob.h" -#include -#include -#include -#include -#include "error.h" -#include "files.h" #include "memory.h" - #include "common/wadres.h" -#include "common/streams.h" - -typedef struct Block { - int id; - int ref; - char data[]; -} Block; - -static Block *blocks[MAX_RESOURCES]; void M_startup (void) { - memset(blocks, 0, sizeof(blocks)); + // stub } void M_shutdown (void) { @@ -44,48 +27,17 @@ void M_shutdown (void) { } void *M_lock (int id) { - assert(id >= -1 && id < MAX_RESOURCES); - if (id >= 0) { - Block *x = blocks[id]; - if (x) { - x->ref += 1; - return x->data; - } else { - x = malloc(sizeof(Block) + WADRES_getsize(id)); - if (x) { - x->id = id; - x->ref = 1; - WADRES_getdata(id, x->data); - blocks[id] = x; - return x->data; - } - } - } - return NULL; + return WADRES_lock(id); } void M_unlock (void *p) { - if (p) { - Block *x = p - sizeof(Block); - int id = x->id; - assert(id >= 0 && id < MAX_RESOURCES); - x->ref -= 1; - assert(x->ref >= 0); -#if 0 - if (x->ref == 0) { - blocks[id] = NULL; - free(x); - } -#endif - } + WADRES_unlock(p); } int M_locked (int id) { - assert(id >= -1 && id < MAX_RESOURCES); - return (id >= 0) && (blocks[id] != NULL) && (blocks[id]->ref >= 1); + return WADRES_locked(id); } int M_was_locked (int id) { - assert(id >= -1 && id < MAX_RESOURCES); - return (id >= 0) && (blocks[id] != NULL) && (blocks[id]->ref >= 0); + return WADRES_was_locked(id); }