random warning fixes
[fceu.git] / memory.c
index bec7270..0194a83 100644 (file)
--- a/memory.c
+++ b/memory.c
@@ -1,7 +1,7 @@
 /* FCE Ultra - NES/Famicom Emulator
  *
  * Copyright notice for this file:
- *  Copyright (C) 2002 Ben Parnell
+ *  Copyright (C) 2002 Xodnizel
  *
  * 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
 #include <stdlib.h>
 
 #include "types.h"
-#include "version.h"
+#include "fce.h"
 #include "memory.h"
 #include "general.h"
 #include "svga.h"
 
+void *FCEU_gmalloc(uint32 size)
+{
+ void *ret;
+ ret=malloc(size);
+ if(!ret)
+ {
+  FCEU_PrintError("Error allocating memory!  Doing a hard exit.");
+  exit(1);
+ }
+ return ret;
+}
+
 void *FCEU_malloc(uint32 size)
 {
  void *ret;
  ret=malloc(size);
  if(!ret)
-  FCEU_PrintError(MSG_ERRAM);
+ {
+  FCEU_PrintError("Error allocating memory!");
+  return(0);
+ }
  return ret;
 }
 
-void FCEU_free(void *ptr)              // Might do something with this and FCEU_malloc later...
+void FCEU_free(void *ptr)    // Might do something with this and FCEU_malloc later...
+{
+ free(ptr);
+}
+
+void FCEU_gfree(void *ptr)
 {
  free(ptr);
 }
@@ -43,25 +63,39 @@ void FCEU_free(void *ptr)           // Might do something with this and FCEU_malloc later
 void FASTAPASS(3) FCEU_memmove(void *d, void *s, uint32 l)
 {
  uint32 x;
int t;
long t;
 
  /* Type really doesn't matter. */
- t=(int)d;
- t|=(int)s;
- t|=(int)l;
+ t=(long)d;
+ t|=(long)s;
+ t|=(long)l;
+
+ if(t&3)    // Not 4-byte aligned and/or length is not a multiple of 4.
+ {
+  uint8 *tmpd, *tmps;
 
- if(t&3)          // Not 4-byte aligned and/or length is not a multiple of 4.
-  for(x=l;x;x--)        // This could be optimized further, though(more tests could be performed).
+  tmpd = d;
+  tmps = s;
+
+  for(x=l;x;x--)  // This could be optimized further, though(more tests could be performed).
   {
-   *(uint8*)d=*(uint8 *)s;
-   ((uint8 *)d)++;
-   ((uint8 *)s)++;
+   *tmpd=*tmps;
+   tmpd++;
+   tmps++;
   }
+ }
  else
+ {
+  uint32 *tmpd, *tmps;
+
+  tmpd = d;
+  tmps = s;
+
   for(x=l>>2;x;x--)
   {
-   *(uint32*)d=*(uint32*)s;
-   ((uint32 *)d)++;
-   ((uint32 *)s)++;
+   *tmpd=*tmps;
+   tmpd++;
+   tmps++;
   }
+ }
 }