2014-02-06  Antonio Gomes  <a1.gomes@sisa.samsung.com>

        Fix a leak in WebCLCommenQueue::release
        Issue #442

        Reviewed by TrustMe.

        * Modules/webcl/WebCLCommandQueue.cpp:
        (WebCore::WebCLCommandQueue::releasePlatformObjectImpl):
2014-02-06  Antonio Gomes  <a1.gomes@sisa.samsung.com>

        Introduce ComputeMemoryObject
        Issue #427

        Reviewed by TrustMe.

        Make access to PlatformComputeObject through
        ComputeMemoryObject. It affects the following WebCL classes:
        WebCLMemoryObject, WebCLBuffer and WebCLImage, WebCLCommandQueue
        and WebCLKernel. The respective compute classes are also adapted accordingly.

        No behavior change.

        * Modules/webcl/WebCLBuffer.cpp:
        (WebCore::WebCLBuffer::create):
        (WebCore::WebCLBuffer::WebCLBuffer):
        (WebCore::WebCLBuffer::createSubBuffer):
        * Modules/webcl/WebCLBuffer.h:
        * Modules/webcl/WebCLCommandQueue.cpp:
        (WebCore::WebCLCommandQueue::enqueueWriteBufferBase):
        (WebCore::WebCLCommandQueue::enqueueWriteBufferRectBase):
        (WebCore::WebCLCommandQueue::enqueueReadBufferBase):
        (WebCore::WebCLCommandQueue::enqueueReadImageBase):
        (WebCore::WebCLCommandQueue::enqueueReadBufferRectBase):
        (WebCore::WebCLCommandQueue::enqueueWriteImageBase):
        (WebCore::WebCLCommandQueue::enqueueCopyImage):
        (WebCore::WebCLCommandQueue::enqueueCopyImageToBuffer):
        (WebCore::WebCLCommandQueue::enqueueCopyBufferToImage):
        (WebCore::WebCLCommandQueue::enqueueCopyBuffer):
        (WebCore::WebCLCommandQueue::enqueueCopyBufferRect):
        (WebCore::WebCLCommandQueue::enqueueAcquireGLObjects):
        (WebCore::WebCLCommandQueue::enqueueReleaseGLObjects):
        * Modules/webcl/WebCLImage.cpp:
        (WebCore::WebCLImage::create):
        (WebCore::WebCLImage::getGLTextureInfo):
        (WebCore::WebCLImage::WebCLImage):
        * Modules/webcl/WebCLImage.h:
        * Modules/webcl/WebCLKernel.cpp:
        (WebCore::WebCLKernel::setArg):
        * Modules/webcl/WebCLMemoryObject.cpp:
        (WebCore::WebCLMemoryObject::create):
        (WebCore::WebCLMemoryObject::WebCLMemoryObject):
        (WebCore::WebCLMemoryObject::getInfo):
        (WebCore::WebCLMemoryObject::releasePlatformObjectImpl):
        * Modules/webcl/WebCLMemoryObject.h:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/ComputeCommandQueue.h:
        * platform/ComputeContext.h:
        (WebCore::ComputeContext::getSamplerInfo):
        * platform/ComputeKernel.h:
        * platform/ComputeMemoryObject.h: Added.
        (WebCore::ComputeMemoryObject::getImageInfo):
        (WebCore::ComputeMemoryObject::getGLTextureInfo):
        (WebCore::ComputeMemoryObject::getMemoryObjectInfo):
        (WebCore::ComputeMemoryObject::memoryObject):
        * platform/opencl/ComputeCommandQueueCL.cpp:
        (WebCore::ComputeCommandQueue::enqueueWriteBuffer):
        (WebCore::ComputeCommandQueue::enqueueWriteBufferRect):
        (WebCore::ComputeCommandQueue::enqueueReadBuffer):
        (WebCore::ComputeCommandQueue::enqueueReadBufferRect):
        (WebCore::ComputeCommandQueue::enqueueReadImage):
        (WebCore::ComputeCommandQueue::enqueueWriteImage):
        (WebCore::ccMemoryObjectListFromComputeMemoryObjectList):
        (WebCore::ComputeCommandQueue::enqueueAcquireGLObjects):
        (WebCore::ComputeCommandQueue::enqueueReleaseGLObjects):
        (WebCore::ComputeCommandQueue::enqueueCopyImage):
        (WebCore::ComputeCommandQueue::enqueueCopyImageToBuffer):
        (WebCore::ComputeCommandQueue::enqueueCopyBufferToImage):
        (WebCore::ComputeCommandQueue::enqueueCopyBuffer):
        (WebCore::ComputeCommandQueue::enqueueCopyBufferRect):
        * platform/opencl/ComputeContextCL.cpp:
        (WebCore::ComputeContext::createBuffer):
        (WebCore::ComputeContext::createImage2D):
        (WebCore::ComputeContext::createFromGLBuffer):
        (WebCore::ComputeContext::createFromGLRenderbuffer):
        (WebCore::ComputeContext::createFromGLTexture2D):
        * platform/opencl/ComputeKernelCL.cpp:
        (WebCore::ComputeKernel::setKernelArg):
        * platform/opencl/ComputeMemoryObjectCL.cpp: Added.
        (WebCore::computeMemoryTypeToCL):
        (WebCore::ComputeMemoryObject::~ComputeMemoryObject):
        (WebCore::ComputeMemoryObject::ComputeMemoryObject):
        (WebCore::ComputeMemoryObject::createSubBuffer):
        (WebCore::ComputeMemoryObject::getImageInfoBase):
        (WebCore::ComputeMemoryObject::getGLTextureInfoBase):
        (WebCore::ComputeMemoryObject::getMemoryObjectInfoBase):
        (WebCore::ComputeMemoryObject::release):