From 878c81b45cd81e76347cf3be96b695dd709aa847 Mon Sep 17 00:00:00 2001 From: adazem009 <68537469+adazem009@users.noreply.github.com> Date: Thu, 25 Jan 2024 16:28:27 +0100 Subject: [PATCH] fix #448: Do not load monitor dimensions if they're not present --- src/internal/scratch3reader.cpp | 12 ++++++++---- test/load_project/load_project_test.cpp | 8 ++++++++ .../448_null_monitor_dimension.sb3 | Bin 0 -> 861 bytes 3 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 test/regtest_projects/448_null_monitor_dimension.sb3 diff --git a/src/internal/scratch3reader.cpp b/src/internal/scratch3reader.cpp index c747a023..af41223c 100644 --- a/src/internal/scratch3reader.cpp +++ b/src/internal/scratch3reader.cpp @@ -404,12 +404,16 @@ bool Scratch3Reader::load() } // width - READER_STEP(step, "monitor -> width"); - monitor->setWidth(jsonMonitor["width"]); + if (jsonMonitor.contains("width")) { + READER_STEP(step, "monitor -> width"); + monitor->setWidth(jsonMonitor["width"]); + } // height - READER_STEP(step, "monitor -> height"); - monitor->setHeight(jsonMonitor["height"]); + if (jsonMonitor.contains("height")) { + READER_STEP(step, "monitor -> height"); + monitor->setHeight(jsonMonitor["height"]); + } // x READER_STEP(step, "monitor -> x"); diff --git a/test/load_project/load_project_test.cpp b/test/load_project/load_project_test.cpp index f95c338a..639e4c0d 100644 --- a/test/load_project/load_project_test.cpp +++ b/test/load_project/load_project_test.cpp @@ -701,3 +701,11 @@ TEST(LoadProjectTest, ProjectInvalidTest) ASSERT_EQ(p.scratchVersion(), ScratchVersion::Invalid); ASSERT_FALSE(p.load()); } + +TEST(LoadProjectTest, LoadNullDimensionMonitor) +{ + // Regtest for #448 + std::string name = "regtest_projects/448_null_monitor_dimension.sb3"; + Project p(name); + ASSERT_TRUE(p.load()); +} diff --git a/test/regtest_projects/448_null_monitor_dimension.sb3 b/test/regtest_projects/448_null_monitor_dimension.sb3 new file mode 100644 index 0000000000000000000000000000000000000000..c52a77f2aab78994d9620448fb9ff578a0d97d61 GIT binary patch literal 861 zcmWIWW@Zs#U|`^2&~LVkXt&{VX0boV~4fA0|&tWo=-d&cRDFV0xr zaz3wh`RMq~ zqhDT~os{mdXvP8||8}mPzRGv=4u^hNq4Mu!@AUJ@I(xT1@sqvTe&FWP{*~v~ck^g` zocQQOX6vU&*85k_cqbm}w~O$(({Z@XTS9qh_R*aozP9Vrz0NHE8nyQN>SdWndRR_c zuKX-%bYqoe?&bOf_2Ul@s{7p9?fuO2q4busK7V3sTejJWw=d^f^nUKCJC<^LG`+7j z=}X)R{2?RKx+zuZc4fx>B8v>ye|8JHWj9F_vA_Kjl4cwvcEI{X`L>t$?w7iJx-N8g znf|k#_h$Ur^wm#Y-Yt8x#D5cA=1{qn8NGWGzaJU&=H%jH$Ja+N)mDY;U4=f~+q5BDDGEn~Gv+aViz>0@)B zQGnFPO2d1zVp7(+N9wAcnWJ=5aW&`V&KVtll6BRSE=_6KT6i}uedBd z*Vmh`SwZAZb=URn>_^s_99rb*e?fSQS4+sz1FJ9Gz8*E*H_dQnzVvm*FyTd?H#?nF zbtW1VZa?A5Pcx>889;t6FdRltZX3lOhDKJq;~@|5Ca1M DUbkfy literal 0 HcmV?d00001