Skip to content

Commit 47e7aad

Browse files
committed
Fix costume data allocation in tests
1 parent 322dce0 commit 47e7aad

File tree

3 files changed

+30
-10
lines changed

3 files changed

+30
-10
lines changed

test/renderedtarget/renderedtarget_test.cpp

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,9 @@ TEST_F(RenderedTargetTest, UpdateMethods)
8787
target.setStageModel(&stageModel);
8888
auto costume = std::make_shared<Costume>("", "", "png");
8989
std::string costumeData = readFileStr("image.png");
90-
costume->setData(costumeData.size(), static_cast<void *>(costumeData.data()));
90+
char *data = (char *)malloc((costumeData.size() + 1) * sizeof(char));
91+
memcpy(data, costumeData.c_str(), (costumeData.size() + 1) * sizeof(char));
92+
costume->setData(costumeData.size(), static_cast<void *>(data));
9193
costume->setRotationCenterX(-23);
9294
costume->setRotationCenterY(72);
9395
costume->setBitmapResolution(2.5);
@@ -282,7 +284,9 @@ TEST_F(RenderedTargetTest, UpdateMethods)
282284
// SVG
283285
costume = std::make_shared<Costume>("", "", "svg");
284286
std::string svgCostumeData = readFileStr("image.svg");
285-
costume->setData(svgCostumeData.size(), static_cast<void *>(svgCostumeData.data()));
287+
char *svgData = (char *)malloc((svgCostumeData.size() + 1) * sizeof(char));
288+
memcpy(svgData, svgCostumeData.c_str(), (svgCostumeData.size() + 1) * sizeof(char));
289+
costume->setData(svgCostumeData.size(), static_cast<void *>(svgData));
286290
costume->setRotationCenterX(25);
287291
costume->setRotationCenterY(-8);
288292
sprite.addCostume(costume);
@@ -373,7 +377,9 @@ TEST_F(RenderedTargetTest, CpuRendering)
373377
EXPECT_CALL(engine, stageHeight()).WillRepeatedly(Return(360));
374378
auto costume = std::make_shared<Costume>("", "", "png");
375379
std::string costumeData = readFileStr("image.png");
376-
costume->setData(costumeData.size(), static_cast<void *>(costumeData.data()));
380+
char *data = (char *)malloc((costumeData.size() + 1) * sizeof(char));
381+
memcpy(data, costumeData.c_str(), (costumeData.size() + 1) * sizeof(char));
382+
costume->setData(costumeData.size(), static_cast<void *>(data));
377383
sprite.addCostume(costume);
378384
target.loadCostumes();
379385
target.updateCostume(costume.get());
@@ -759,7 +765,9 @@ TEST_F(RenderedTargetTest, GetBounds)
759765
target.setEngine(&engine);
760766
auto costume = std::make_shared<Costume>("", "", "png");
761767
std::string costumeData = readFileStr("image.png");
762-
costume->setData(costumeData.size(), static_cast<void *>(costumeData.data()));
768+
char *data = (char *)malloc((costumeData.size() + 1) * sizeof(char));
769+
memcpy(data, costumeData.c_str(), (costumeData.size() + 1) * sizeof(char));
770+
costume->setData(costumeData.size(), static_cast<void *>(data));
763771
costume->setRotationCenterX(-15);
764772
costume->setRotationCenterY(48);
765773
costume->setBitmapResolution(3.25);
@@ -850,7 +858,9 @@ TEST_F(RenderedTargetTest, GetFastBounds)
850858
target.setEngine(&engine);
851859
auto costume = std::make_shared<Costume>("", "", "png");
852860
std::string costumeData = readFileStr("image.png");
853-
costume->setData(costumeData.size(), static_cast<void *>(costumeData.data()));
861+
char *data = (char *)malloc((costumeData.size() + 1) * sizeof(char));
862+
memcpy(data, costumeData.c_str(), (costumeData.size() + 1) * sizeof(char));
863+
costume->setData(costumeData.size(), static_cast<void *>(data));
854864
costume->setRotationCenterX(-15);
855865
costume->setRotationCenterY(48);
856866
costume->setBitmapResolution(3.25);
@@ -925,7 +935,9 @@ TEST_F(RenderedTargetTest, TouchingClones)
925935
EXPECT_CALL(engine, stageHeight()).WillRepeatedly(Return(360));
926936
auto costume = std::make_shared<Costume>("", "", "png");
927937
std::string costumeData = readFileStr("image.png");
928-
costume->setData(costumeData.size(), static_cast<void *>(costumeData.data()));
938+
char *data = (char *)malloc((costumeData.size() + 1) * sizeof(char));
939+
memcpy(data, costumeData.c_str(), (costumeData.size() + 1) * sizeof(char));
940+
costume->setData(costumeData.size(), static_cast<void *>(data));
929941
sprite.addCostume(costume);
930942
target.loadCostumes();
931943
target.updateCostume(costume.get());
@@ -1140,7 +1152,9 @@ TEST_F(RenderedTargetTest, TouchingColor)
11401152
EXPECT_CALL(engine, stageHeight()).WillRepeatedly(Return(360));
11411153
auto costume = std::make_shared<Costume>("", "", "png");
11421154
std::string costumeData = readFileStr("image.png");
1143-
costume->setData(costumeData.size(), static_cast<void *>(costumeData.data()));
1155+
char *data = (char *)malloc((costumeData.size() + 1) * sizeof(char));
1156+
memcpy(data, costumeData.c_str(), (costumeData.size() + 1) * sizeof(char));
1157+
costume->setData(costumeData.size(), static_cast<void *>(data));
11441158
sprite->addCostume(costume);
11451159
target.loadCostumes();
11461160
target.updateCostume(costume.get());

test/skins/bitmapskin_test.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,16 @@ class BitmapSkinTest : public testing::Test
2121

2222
Costume jpegCostume("", "", "");
2323
std::string costumeData = readFileStr("image.jpg");
24-
jpegCostume.setData(costumeData.size(), costumeData.data());
24+
char *data = (char *)malloc((costumeData.size() + 1) * sizeof(char));
25+
memcpy(data, costumeData.c_str(), (costumeData.size() + 1) * sizeof(char));
26+
jpegCostume.setData(costumeData.size(), data);
2527
m_jpegSkin = std::make_unique<BitmapSkin>(&jpegCostume);
2628

2729
Costume pngCostume("", "", "");
2830
costumeData = readFileStr("image.png");
29-
pngCostume.setData(costumeData.size(), costumeData.data());
31+
data = (char *)malloc((costumeData.size() + 1) * sizeof(char));
32+
memcpy(data, costumeData.c_str(), (costumeData.size() + 1) * sizeof(char));
33+
pngCostume.setData(costumeData.size(), data);
3034
m_pngSkin = std::make_unique<BitmapSkin>(&pngCostume);
3135
}
3236

test/skins/svgskin_test.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ class SVGSkinTest : public testing::Test
2121

2222
Costume costume("", "", "");
2323
std::string costumeData = readFileStr("image.svg");
24-
costume.setData(costumeData.size(), costumeData.data());
24+
char *data = (char *)malloc((costumeData.size() + 1) * sizeof(char));
25+
memcpy(data, costumeData.c_str(), (costumeData.size() + 1) * sizeof(char));
26+
costume.setData(costumeData.size(), data);
2527
m_skin = std::make_unique<SVGSkin>(&costume);
2628
}
2729

0 commit comments

Comments
 (0)