Memory allocator mismatch; Use operator new[] with OwnArrayPtr instead of fastMalloc()
authordbates@webkit.org <dbates@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 8 Jan 2012 03:41:45 +0000 (03:41 +0000)
committerdbates@webkit.org <dbates@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 8 Jan 2012 03:41:45 +0000 (03:41 +0000)
Rubber-stamped by Adam Barth.

Currently getProgramInfoLog() in GraphicsContext3DOpenGL.cpp assumes that operator new[]
and fastMalloc() are equivalent when it adopts a fastMalloc() allocated buffer. Notice,
OwnArrayPtr ultimately calls delete[] on destruction. When GLOBAL_FASTMALLOC_NEW is disabled,
it isn't true that operator new[], operator delete[] are equivalent to fastMalloc(), fastFree(),
respectively. Hence, there may be a mismatch between the allocation and deallocation
routines. Therefore, we should allocate the array to be adopted by OwnArrayPtr using
operator new[].

* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::GraphicsContext3D::getProgramInfoLog):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@104395 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGL.cpp

index 7f6edc9..2f1197f 100644 (file)
@@ -1,3 +1,20 @@
+2012-01-07  Daniel Bates  <dbates@webkit.org>
+
+        Memory allocator mismatch; Use operator new[] with OwnArrayPtr instead of fastMalloc()
+
+        Rubber-stamped by Adam Barth.
+
+        Currently getProgramInfoLog() in GraphicsContext3DOpenGL.cpp assumes that operator new[]
+        and fastMalloc() are equivalent when it adopts a fastMalloc() allocated buffer. Notice,
+        OwnArrayPtr ultimately calls delete[] on destruction. When GLOBAL_FASTMALLOC_NEW is disabled,
+        it isn't true that operator new[], operator delete[] are equivalent to fastMalloc(), fastFree(),
+        respectively. Hence, there may be a mismatch between the allocation and deallocation
+        routines. Therefore, we should allocate the array to be adopted by OwnArrayPtr using
+        operator new[].
+
+        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
+        (WebCore::GraphicsContext3D::getProgramInfoLog):
+
 2012-01-07  Chris Marrin  <cmarrin@apple.com>
 
         Fixed ANGLE build for GNU and QT broken in https://trac.webkit.org/changeset/104363
index f5c44e5..e62d185 100644 (file)
@@ -1248,7 +1248,7 @@ String GraphicsContext3D::getProgramInfoLog(Platform3DObject program)
         return String(); 
 
     GLsizei size = 0;
-    OwnArrayPtr<GLchar> info = adoptArrayPtr(static_cast<GLchar*>(fastMalloc(length)));
+    OwnArrayPtr<GLchar> info = adoptArrayPtr(new GLchar[length]);
     ::glGetProgramInfoLog(program, length, &size, info.get());
 
     return String(info.get());