summaryrefslogtreecommitdiff
path: root/Source/Core/Common/MemArena.cpp
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2014-11-02 17:32:22 -0800
committerJasper St. Pierre <jstpierre@mecheye.net>2014-11-02 19:25:42 -0800
commit64540bc60d86c9cf48b26fd8b181e1b0a5a6400f (patch)
tree1b847cddcdffb398b1e6a93406564e3a79141fbd /Source/Core/Common/MemArena.cpp
parent204598a0826b3692b8d2dc0c68045b8d95f3b6ef (diff)
MemArena: Fix a memory leak caused by pointer confusion
This code was ported from out_ptr, which was a double-pointer, and wanted to double-check that the proper arena was actually allocated. When I ported it to store the pointer directly in the view regardless of whether out_ptr was non-NULL, I got confused here and instead caused the code to only free the arena if the first byte was non-zero.
Diffstat (limited to 'Source/Core/Common/MemArena.cpp')
-rw-r--r--Source/Core/Common/MemArena.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/Source/Core/Common/MemArena.cpp b/Source/Core/Common/MemArena.cpp
index 60ad058778..119549f06d 100644
--- a/Source/Core/Common/MemArena.cpp
+++ b/Source/Core/Common/MemArena.cpp
@@ -267,7 +267,7 @@ void MemoryMap_Shutdown(MemoryView *views, int num_views, u32 flags, MemArena *a
for (int i = 0; i < num_views; i++)
{
MemoryView* view = &views[i];
- if (view->mapped_ptr && *(u8*)view->mapped_ptr && !freeset.count(view->mapped_ptr))
+ if (view->mapped_ptr && !freeset.count(view->mapped_ptr))
{
arena->ReleaseView(view->mapped_ptr, view->size);
freeset.insert(view->mapped_ptr);