diff options
Diffstat (limited to 'src/common/chunk_file.h')
| -rw-r--r-- | src/common/chunk_file.h | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/src/common/chunk_file.h b/src/common/chunk_file.h index 32af74594..39a14dc81 100644 --- a/src/common/chunk_file.h +++ b/src/common/chunk_file.h | |||
| @@ -154,7 +154,7 @@ public: | |||
| 154 | Do(foundVersion); | 154 | Do(foundVersion); |
| 155 | 155 | ||
| 156 | if (error == ERROR_FAILURE || foundVersion < minVer || foundVersion > ver) { | 156 | if (error == ERROR_FAILURE || foundVersion < minVer || foundVersion > ver) { |
| 157 | WARN_LOG(COMMON, "Savestate failure: wrong version %d found for %s", foundVersion, title); | 157 | LOG_ERROR(Common, "Savestate failure: wrong version %d found for %s", foundVersion, title); |
| 158 | SetError(ERROR_FAILURE); | 158 | SetError(ERROR_FAILURE); |
| 159 | return PointerWrapSection(*this, -1, title); | 159 | return PointerWrapSection(*this, -1, title); |
| 160 | } | 160 | } |
| @@ -178,7 +178,14 @@ public: | |||
| 178 | case MODE_READ: if (memcmp(data, *ptr, size) != 0) return false; break; | 178 | case MODE_READ: if (memcmp(data, *ptr, size) != 0) return false; break; |
| 179 | case MODE_WRITE: memcpy(*ptr, data, size); break; | 179 | case MODE_WRITE: memcpy(*ptr, data, size); break; |
| 180 | case MODE_MEASURE: break; // MODE_MEASURE - don't need to do anything | 180 | case MODE_MEASURE: break; // MODE_MEASURE - don't need to do anything |
| 181 | case MODE_VERIFY: for(int i = 0; i < size; i++) _dbg_assert_msg_(COMMON, ((u8*)data)[i] == (*ptr)[i], "Savestate verification failure: %d (0x%X) (at %p) != %d (0x%X) (at %p).\n", ((u8*)data)[i], ((u8*)data)[i], &((u8*)data)[i], (*ptr)[i], (*ptr)[i], &(*ptr)[i]); break; | 181 | case MODE_VERIFY: |
| 182 | for (int i = 0; i < size; i++) { | ||
| 183 | _dbg_assert_msg_(Common, ((u8*)data)[i] == (*ptr)[i], | ||
| 184 | "Savestate verification failure: %d (0x%X) (at %p) != %d (0x%X) (at %p).\n", | ||
| 185 | ((u8*)data)[i], ((u8*)data)[i], &((u8*)data)[i], | ||
| 186 | (*ptr)[i], (*ptr)[i], &(*ptr)[i]); | ||
| 187 | } | ||
| 188 | break; | ||
| 182 | default: break; // throw an error? | 189 | default: break; // throw an error? |
| 183 | } | 190 | } |
| 184 | (*ptr) += size; | 191 | (*ptr) += size; |
| @@ -191,7 +198,14 @@ public: | |||
| 191 | case MODE_READ: memcpy(data, *ptr, size); break; | 198 | case MODE_READ: memcpy(data, *ptr, size); break; |
| 192 | case MODE_WRITE: memcpy(*ptr, data, size); break; | 199 | case MODE_WRITE: memcpy(*ptr, data, size); break; |
| 193 | case MODE_MEASURE: break; // MODE_MEASURE - don't need to do anything | 200 | case MODE_MEASURE: break; // MODE_MEASURE - don't need to do anything |
| 194 | case MODE_VERIFY: for(int i = 0; i < size; i++) _dbg_assert_msg_(COMMON, ((u8*)data)[i] == (*ptr)[i], "Savestate verification failure: %d (0x%X) (at %p) != %d (0x%X) (at %p).\n", ((u8*)data)[i], ((u8*)data)[i], &((u8*)data)[i], (*ptr)[i], (*ptr)[i], &(*ptr)[i]); break; | 201 | case MODE_VERIFY: |
| 202 | for (int i = 0; i < size; i++) { | ||
| 203 | _dbg_assert_msg_(Common, ((u8*)data)[i] == (*ptr)[i], | ||
| 204 | "Savestate verification failure: %d (0x%X) (at %p) != %d (0x%X) (at %p).\n", | ||
| 205 | ((u8*)data)[i], ((u8*)data)[i], &((u8*)data)[i], | ||
| 206 | (*ptr)[i], (*ptr)[i], &(*ptr)[i]); | ||
| 207 | } | ||
| 208 | break; | ||
| 195 | default: break; // throw an error? | 209 | default: break; // throw an error? |
| 196 | } | 210 | } |
| 197 | (*ptr) += size; | 211 | (*ptr) += size; |
| @@ -476,7 +490,7 @@ public: | |||
| 476 | break; | 490 | break; |
| 477 | 491 | ||
| 478 | default: | 492 | default: |
| 479 | ERROR_LOG(COMMON, "Savestate error: invalid mode %d.", mode); | 493 | LOG_ERROR(Common, "Savestate error: invalid mode %d.", mode); |
| 480 | } | 494 | } |
| 481 | } | 495 | } |
| 482 | 496 | ||
| @@ -490,7 +504,12 @@ public: | |||
| 490 | case MODE_READ: x = (char*)*ptr; break; | 504 | case MODE_READ: x = (char*)*ptr; break; |
| 491 | case MODE_WRITE: memcpy(*ptr, x.c_str(), stringLen); break; | 505 | case MODE_WRITE: memcpy(*ptr, x.c_str(), stringLen); break; |
| 492 | case MODE_MEASURE: break; | 506 | case MODE_MEASURE: break; |
| 493 | case MODE_VERIFY: _dbg_assert_msg_(COMMON, !strcmp(x.c_str(), (char*)*ptr), "Savestate verification failure: \"%s\" != \"%s\" (at %p).\n", x.c_str(), (char*)*ptr, ptr); break; | 507 | case MODE_VERIFY: |
| 508 | _dbg_assert_msg_(Common, | ||
| 509 | !strcmp(x.c_str(), (char*)*ptr), | ||
| 510 | "Savestate verification failure: \"%s\" != \"%s\" (at %p).\n", | ||
| 511 | x.c_str(), (char*)*ptr, ptr); | ||
| 512 | break; | ||
| 494 | } | 513 | } |
| 495 | (*ptr) += stringLen; | 514 | (*ptr) += stringLen; |
| 496 | } | 515 | } |
| @@ -504,7 +523,11 @@ public: | |||
| 504 | case MODE_READ: x = (wchar_t*)*ptr; break; | 523 | case MODE_READ: x = (wchar_t*)*ptr; break; |
| 505 | case MODE_WRITE: memcpy(*ptr, x.c_str(), stringLen); break; | 524 | case MODE_WRITE: memcpy(*ptr, x.c_str(), stringLen); break; |
| 506 | case MODE_MEASURE: break; | 525 | case MODE_MEASURE: break; |
| 507 | case MODE_VERIFY: _dbg_assert_msg_(COMMON, x == (wchar_t*)*ptr, "Savestate verification failure: \"%ls\" != \"%ls\" (at %p).\n", x.c_str(), (wchar_t*)*ptr, ptr); break; | 526 | case MODE_VERIFY: |
| 527 | _dbg_assert_msg_(Common, x == (wchar_t*)*ptr, | ||
| 528 | "Savestate verification failure: \"%ls\" != \"%ls\" (at %p).\n", | ||
| 529 | x.c_str(), (wchar_t*)*ptr, ptr); | ||
| 530 | break; | ||
| 508 | } | 531 | } |
| 509 | (*ptr) += stringLen; | 532 | (*ptr) += stringLen; |
| 510 | } | 533 | } |