fix outdated comments, correct do/while bug

This commit is contained in:
Michael Scire 2020-04-19 23:23:51 -07:00
parent a51dd09421
commit 9d1e718bea
2 changed files with 7 additions and 7 deletions

View File

@ -19,7 +19,7 @@
namespace ams::jpegdec::impl { namespace ams::jpegdec::impl {
#define CAPSRV_ABORT_UNLESS(expr) { \ #define CAPSRV_ABORT_UNLESS(expr) do { \
const bool __capsrv_assert_res = (expr); \ const bool __capsrv_assert_res = (expr); \
AMS_ASSERT(__capsrv_assert_res); \ AMS_ASSERT(__capsrv_assert_res); \
AMS_ABORT_UNLESS(__capsrv_assert_res); \ AMS_ABORT_UNLESS(__capsrv_assert_res); \

View File

@ -31,8 +31,12 @@ namespace ams::jpegdec {
const u8 *jpeg = in.GetPointer(); const u8 *jpeg = in.GetPointer();
size_t jpeg_size = in.GetSize(); size_t jpeg_size = in.GetSize();
memset(g_workmem, 0, sizeof(g_workmem)); /* Clear the work memory and out buffer. */
memset(bmp, 0, bmp_size); std::memset(g_workmem, 0, sizeof(g_workmem));
std::memset(bmp, 0, bmp_size);
/* Clear output memory on decode failure. */
auto clear_guard = SCOPE_GUARD { std::memset(bmp, 0, bmp_size); };
R_UNLESS(util::IsAligned(width, 0x10), capsrv::ResultAlbumOutOfRange()); R_UNLESS(util::IsAligned(width, 0x10), capsrv::ResultAlbumOutOfRange());
R_UNLESS(util::IsAligned(height, 0x4), capsrv::ResultAlbumOutOfRange()); R_UNLESS(util::IsAligned(height, 0x4), capsrv::ResultAlbumOutOfRange());
@ -62,16 +66,12 @@ namespace ams::jpegdec {
.bmp_size = bmp_size, .bmp_size = bmp_size,
}; };
/* Clear output memory on decode failure. */
/* NOTE: Nintendo does not do this. */
auto clear_guard = SCOPE_GUARD { std::memset(bmp, 0, bmp_size); };
/* Decode the jpeg. */ /* Decode the jpeg. */
R_TRY(impl::DecodeJpeg(decode_output, decode_input, g_workmem, sizeof(g_workmem))); R_TRY(impl::DecodeJpeg(decode_output, decode_input, g_workmem, sizeof(g_workmem)));
clear_guard.Cancel(); clear_guard.Cancel();
/* Clear the work memory. */ /* Clear the work memory. */
/* NOTE: Nintendo does not do this. */
std::memset(g_workmem, 0, sizeof(g_workmem)); std::memset(g_workmem, 0, sizeof(g_workmem));
return ResultSuccess(); return ResultSuccess();