diff options
Diffstat (limited to 'src/common/chunk_file.h')
| -rw-r--r-- | src/common/chunk_file.h | 59 |
1 files changed, 41 insertions, 18 deletions
diff --git a/src/common/chunk_file.h b/src/common/chunk_file.h index 609784076..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; |
| @@ -204,11 +218,11 @@ public: | |||
| 204 | { | 218 | { |
| 205 | for (auto it = x.begin(), end = x.end(); it != end; ++it) | 219 | for (auto it = x.begin(), end = x.end(); it != end; ++it) |
| 206 | { | 220 | { |
| 207 | if (it->second != NULL) | 221 | if (it->second != nullptr) |
| 208 | delete it->second; | 222 | delete it->second; |
| 209 | } | 223 | } |
| 210 | } | 224 | } |
| 211 | T *dv = NULL; | 225 | T *dv = nullptr; |
| 212 | DoMap(x, dv); | 226 | DoMap(x, dv); |
| 213 | } | 227 | } |
| 214 | 228 | ||
| @@ -264,11 +278,11 @@ public: | |||
| 264 | { | 278 | { |
| 265 | for (auto it = x.begin(), end = x.end(); it != end; ++it) | 279 | for (auto it = x.begin(), end = x.end(); it != end; ++it) |
| 266 | { | 280 | { |
| 267 | if (it->second != NULL) | 281 | if (it->second != nullptr) |
| 268 | delete it->second; | 282 | delete it->second; |
| 269 | } | 283 | } |
| 270 | } | 284 | } |
| 271 | T *dv = NULL; | 285 | T *dv = nullptr; |
| 272 | DoMultimap(x, dv); | 286 | DoMultimap(x, dv); |
| 273 | } | 287 | } |
| 274 | 288 | ||
| @@ -320,7 +334,7 @@ public: | |||
| 320 | template<class T> | 334 | template<class T> |
| 321 | void Do(std::vector<T *> &x) | 335 | void Do(std::vector<T *> &x) |
| 322 | { | 336 | { |
| 323 | T *dv = NULL; | 337 | T *dv = nullptr; |
| 324 | DoVector(x, dv); | 338 | DoVector(x, dv); |
| 325 | } | 339 | } |
| 326 | 340 | ||
| @@ -369,7 +383,7 @@ public: | |||
| 369 | template<class T> | 383 | template<class T> |
| 370 | void Do(std::deque<T *> &x) | 384 | void Do(std::deque<T *> &x) |
| 371 | { | 385 | { |
| 372 | T *dv = NULL; | 386 | T *dv = nullptr; |
| 373 | DoDeque(x, dv); | 387 | DoDeque(x, dv); |
| 374 | } | 388 | } |
| 375 | 389 | ||
| @@ -395,7 +409,7 @@ public: | |||
| 395 | template<class T> | 409 | template<class T> |
| 396 | void Do(std::list<T *> &x) | 410 | void Do(std::list<T *> &x) |
| 397 | { | 411 | { |
| 398 | T *dv = NULL; | 412 | T *dv = nullptr; |
| 399 | Do(x, dv); | 413 | Do(x, dv); |
| 400 | } | 414 | } |
| 401 | 415 | ||
| @@ -433,7 +447,7 @@ public: | |||
| 433 | { | 447 | { |
| 434 | for (auto it = x.begin(), end = x.end(); it != end; ++it) | 448 | for (auto it = x.begin(), end = x.end(); it != end; ++it) |
| 435 | { | 449 | { |
| 436 | if (*it != NULL) | 450 | if (*it != nullptr) |
| 437 | delete *it; | 451 | delete *it; |
| 438 | } | 452 | } |
| 439 | } | 453 | } |
| @@ -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 | } |
| @@ -518,7 +541,7 @@ public: | |||
| 518 | void DoClass(T *&x) { | 541 | void DoClass(T *&x) { |
| 519 | if (mode == MODE_READ) | 542 | if (mode == MODE_READ) |
| 520 | { | 543 | { |
| 521 | if (x != NULL) | 544 | if (x != nullptr) |
| 522 | delete x; | 545 | delete x; |
| 523 | x = new T(); | 546 | x = new T(); |
| 524 | } | 547 | } |
| @@ -567,7 +590,7 @@ public: | |||
| 567 | { | 590 | { |
| 568 | if (mode == MODE_READ) | 591 | if (mode == MODE_READ) |
| 569 | { | 592 | { |
| 570 | cur->next = 0; | 593 | cur->next = nullptr; |
| 571 | list_cur = cur; | 594 | list_cur = cur; |
| 572 | if (prev) | 595 | if (prev) |
| 573 | prev->next = cur; | 596 | prev->next = cur; |
| @@ -586,13 +609,13 @@ public: | |||
| 586 | if (mode == MODE_READ) | 609 | if (mode == MODE_READ) |
| 587 | { | 610 | { |
| 588 | if (prev) | 611 | if (prev) |
| 589 | prev->next = 0; | 612 | prev->next = nullptr; |
| 590 | if (list_end) | 613 | if (list_end) |
| 591 | *list_end = prev; | 614 | *list_end = prev; |
| 592 | if (list_cur) | 615 | if (list_cur) |
| 593 | { | 616 | { |
| 594 | if (list_start == list_cur) | 617 | if (list_start == list_cur) |
| 595 | list_start = 0; | 618 | list_start = nullptr; |
| 596 | do | 619 | do |
| 597 | { | 620 | { |
| 598 | LinkedListItem<T>* next = list_cur->next; | 621 | LinkedListItem<T>* next = list_cur->next; |