Skip to content

Commit c1b1033

Browse files
committed
Fix fairygui memcpy leak
[MemoryTracker] ==== Memory Leaks (1) ==== [Leak] ptr=00000201C1A3CB40 size=16 thread=29652 type=NORMAL 0>D:\dev\simdsoft\axmol3\axmol\platform\win32\MemoryTracker.h(368): ((uld::MemoryTracker::_on_alloc)+0xba) 00007FF6980717BA 1>D:\dev\simdsoft\axmol3\axmol\platform\win32\MemoryTracker.h(195): ((uld::MemoryTracker::_hook_malloc_dbg)+0x66) 00007FF6980710A6 2>C:\Program Files (x86)\Windows Kits\10\Source\10.0.26100.0\ucrt\heap\malloc.cpp(27): ((malloc)+0x1f) 0000000401070ACF 3>D:\a\_work\1\s\src\vctools\crt\vcstartup\src\heap\new_scalar.cpp(36): ((operator new)+0x13) 00007FF699ECCFF3 4>D:\a\_work\1\s\src\vctools\crt\vcstartup\src\heap\new_array.cpp(30): ((operator new[])+0x13) 00007FF699ECE0A3 5>D:\dev\simdsoft\axmol3\extensions\fairygui\src\fairygui\UIPackage.cpp(18): ((fairygui::`dynamic initializer for 'emptyTextureData'')+0x10) 00007FF698039190 6>C:\Program Files (x86)\Windows Kits\10\Source\10.0.26100.0\ucrt\startup\initterm.cpp(21): ((_initterm)+0x49) 00000004010B6A99 7>D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(258): ((__scrt_common_main_seh)+0x8b) 00007FF699ECDE2B 8>D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(331): ((__scrt_common_main)+0xe) 00007FF699ECDD8E 9>D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp(17): ((mainCRTStartup)+0xe) 00007FF699ECE07E 10>((BaseThreadInitThunk)+0x17) 00007FFE2318E8D7 11>((RtlUserThreadStart)+0x2c) 00007FFE2482C53C [MemoryTracker] ==========================
1 parent 43e3157 commit c1b1033

File tree

1 file changed

+3
-11
lines changed

1 file changed

+3
-11
lines changed

extensions/fairygui/src/fairygui/UIPackage.cpp

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,11 @@ using namespace ax;
1010

1111
using namespace std;
1212

13-
const string UIPackage::URL_PREFIX = "ui://";
13+
const std::string UIPackage::URL_PREFIX = "ui://";
1414
int UIPackage::_constructing = 0;
1515
std::string UIPackage::_branch;
1616
std::unordered_map<std::string, std::string> UIPackage::_vars;
1717

18-
const unsigned char* emptyTextureData = new unsigned char[16]{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
19-
2018
std::unordered_map<std::string, UIPackage*> UIPackage::_packageInstById;
2119
std::unordered_map<std::string, UIPackage*> UIPackage::_packageInstByName;
2220
std::vector<UIPackage*> UIPackage::_packageList;
@@ -95,14 +93,8 @@ UIPackage* UIPackage::addPackage(const string& assetPath)
9593
if (it != _packageInstById.end())
9694
return it->second;
9795

98-
if (_emptyTexture == nullptr)
99-
{
100-
Image* emptyImage = new Image();
101-
emptyImage->initWithRawData(emptyTextureData, 16, 2, 2, 4, false);
102-
_emptyTexture = new Texture2D();
103-
_emptyTexture->initWithImage(emptyImage);
104-
delete emptyImage;
105-
}
96+
if (!_emptyTexture)
97+
_emptyTexture = Director::getInstance()->getTextureCache()->getWhiteTexture();
10698

10799
Data data;
108100

0 commit comments

Comments
 (0)