summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2014-01-27 19:08:34 +0000
committerSND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2014-01-27 19:08:34 +0000
commit0849a1f756e4ddd52cbfcd96bb2364c30adc4b94 (patch)
tree663a5a78a5896ee7cbea28aa04848d954481c431
parentdff057c107c51804881bf076d35cda6642fed517 (diff)
downloadpcsxr-0849a1f756e4ddd52cbfcd96bb2364c30adc4b94.tar.gz
misc.c fix;
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@88505 e17a0e51-4ae3-4d35-97c3-1a29b211df97
-rwxr-xr-xlibpcsxcore/misc.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/libpcsxcore/misc.c b/libpcsxcore/misc.c
index cabd8d12..92bb12c5 100755
--- a/libpcsxcore/misc.c
+++ b/libpcsxcore/misc.c
@@ -499,8 +499,8 @@ int Load(const char *ExePath) {
}
// STATES
-static const u8 PCSXR_HEADER_SZ = 10U;
-static const u32 SZ_GPUPIC = 128 * 96 * 3;
+#define PCSXR_HEADER_SZ (10)
+#define SZ_GPUPIC (128 * 96 * 3)
static const char PcsxrHeader[32] = "STv4 PCSXR v" PACKAGE_VERSION;
// Savestate Versioning!
@@ -633,7 +633,7 @@ void CleanupMemSaveStates() {}
#endif
int SaveStateGz(gzFile f, long* gzsize) {
- GPUFreeze_t gpufP;
+ GPUFreeze_t *gpufP;
SPUFreeze_t *spufP;
int Size;
unsigned char pMemGpuPic[SZ_GPUPIC], pMemSpuT[16];
@@ -656,9 +656,11 @@ int SaveStateGz(gzFile f, long* gzsize) {
gzwrite(f, (void *)&psxRegs, sizeof(psxRegs));
// gpu
- gpufP.ulFreezeVersion = 1;
- GPU_freeze(1, &gpufP);
- gzwrite(f, &gpufP, sizeof(GPUFreeze_t));
+ gpufP = (GPUFreeze_t *)malloc(sizeof(GPUFreeze_t));
+ gpufP->ulFreezeVersion = 1;
+ GPU_freeze(1, gpufP);
+ gzwrite(f, gpufP, sizeof(GPUFreeze_t));
+ free(gpufP);
// spu
spufP = (SPUFreeze_t *)pMemSpuT; // only first 3 elements (up to Size)
@@ -684,7 +686,7 @@ int SaveStateGz(gzFile f, long* gzsize) {
}
int LoadStateGz(gzFile f) {
- GPUFreeze_t gpufP;
+ GPUFreeze_t *gpufP;
SPUFreeze_t *spufP;
int Size;
char header[sizeof(PcsxrHeader)];
@@ -715,8 +717,10 @@ int LoadStateGz(gzFile f) {
psxBiosFreeze(0);
// gpu
- gzread(f, &gpufP, sizeof(GPUFreeze_t));
- GPU_freeze(0, &gpufP);
+ gpufP = (GPUFreeze_t *)malloc(sizeof(GPUFreeze_t));
+ gzread(f, gpufP, sizeof(GPUFreeze_t));
+ GPU_freeze(0, gpufP);
+ free(gpufP);
// spu
gzread(f, &Size, 4);