diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-08 16:04:53 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-08 16:04:53 +0100 |
| commit | 06c8c665f0a9e5ac3819004e8d64b1fa323deeb0 (patch) | |
| tree | fec7d278b1afe7292556415c0fd7244a0d89113b /src/test_demo.cc | |
| parent | 0f99e09bd4a4bd73c25d0bba9e1954c911fd8be8 (diff) | |
feat(util): Add CHECK_RETURN macros for recoverable errors
Created check_return.h with hybrid macro system:
- CHECK_RETURN_IF: Simple validation with immediate return
- CHECK_RETURN_BEGIN/END: Complex validation with cleanup
- WARN_IF: Non-fatal warnings
- ERROR_MSG: Error message helper
Applied to 5 call sites:
- asset_manager.cc: 3 procedural generation errors
- test_demo.cc: 2 command-line validation errors
Unlike FATAL_XXX (which abort), these return to caller for
graceful error handling. Messages stripped in STRIP_ALL,
control flow preserved.
Size impact: ~500 bytes saved in STRIP_ALL builds
Tests: 31/31 passing
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'src/test_demo.cc')
| -rw-r--r-- | src/test_demo.cc | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/test_demo.cc b/src/test_demo.cc index 87cdd1e..656d0ba 100644 --- a/src/test_demo.cc +++ b/src/test_demo.cc @@ -3,6 +3,7 @@ #include "audio/audio.h" #include "audio/audio_engine.h" +#include "util/check_return.h" #include "audio/synth.h" #include "generated/assets.h" // Note: uses main demo asset bundle #include "gpu/demo_effects.h" @@ -181,19 +182,20 @@ int main(int argc, char** argv) { return 1; } } else if (strcmp(argv[i], "--log-peaks") == 0) { - if (i + 1 < argc) { - log_peaks_file = argv[++i]; - } else { - fprintf(stderr, "Error: --log-peaks requires a filename argument\n\n"); + CHECK_RETURN_BEGIN(i + 1 >= argc, 1) print_usage(argv[0]); + ERROR_MSG("--log-peaks requires a filename argument\n"); return 1; - } + CHECK_RETURN_END + log_peaks_file = argv[++i]; } else if (strcmp(argv[i], "--log-peaks-fine") == 0) { log_peaks_fine = true; } else { - fprintf(stderr, "Error: Unknown option '%s'\n\n", argv[i]); - print_usage(argv[0]); - return 1; + CHECK_RETURN_BEGIN(true, 1) + print_usage(argv[0]); + ERROR_MSG("Unknown option '%s'\n", argv[i]); + return 1; + CHECK_RETURN_END } } #else |
