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);
}