DEADSOFTWARE

memory: load and allocate resources in wadres
[flatwaifu.git] / src / memory.c
index 404bbc481b36a967e5fa04c94c406842afd14a0c..bd3c609b860a429a81d4b01b97a1a2b0db33ba63 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "glob.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#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);
 }