[Beignet] [PATCH] fix three memory leaks

Zhigang Gong zhigang.gong at linux.intel.com
Thu Jul 24 23:59:09 PDT 2014


Pushed, thanks.

On Thu, Jul 24, 2014 at 07:51:18AM +0800, Guo Yejun wrote:
> Signed-off-by: Guo Yejun <yejun.guo at intel.com>
> ---
>  backend/src/llvm/llvm_printf_parser.cpp | 3 ++-
>  backend/src/llvm/llvm_to_gen.cpp        | 1 +
>  src/cl_command_queue.c                  | 2 ++
>  3 files changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/backend/src/llvm/llvm_printf_parser.cpp b/backend/src/llvm/llvm_printf_parser.cpp
> index 74b57ab..384d36f 100644
> --- a/backend/src/llvm/llvm_printf_parser.cpp
> +++ b/backend/src/llvm/llvm_printf_parser.cpp
> @@ -543,12 +543,13 @@ error:
>  
>      module = F.getParent();
>      intTy = IntegerType::get(module->getContext(), 32);
> -    builder = new IRBuilder<>(module->getContext());
>  
>      // As we inline all function calls, so skip non-kernel functions
>      bool bKernel = isKernelFunction(F);
>      if(!bKernel) return false;
>  
> +    builder = new IRBuilder<>(module->getContext());
> +
>      /* Iter the function and find printf. */
>      for (llvm::Function::iterator B = F.begin(), BE = F.end(); B != BE; B++) {
>        for (BasicBlock::iterator instI = B->begin(),
> diff --git a/backend/src/llvm/llvm_to_gen.cpp b/backend/src/llvm/llvm_to_gen.cpp
> index 328dbc1..3527491 100644
> --- a/backend/src/llvm/llvm_to_gen.cpp
> +++ b/backend/src/llvm/llvm_to_gen.cpp
> @@ -256,6 +256,7 @@ namespace gbe
>        iter++;
>      }
>  
> +    delete libraryInfo;
>      return true;
>    }
>  } /* namespace gbe */
> diff --git a/src/cl_command_queue.c b/src/cl_command_queue.c
> index d45e92f..842c864 100644
> --- a/src/cl_command_queue.c
> +++ b/src/cl_command_queue.c
> @@ -446,7 +446,9 @@ cl_command_queue_flush_gpgpu(cl_command_queue queue, cl_gpgpu gpgpu)
>      cl_gpgpu_unmap_printf_buffer(gpgpu, 0);
>      if (interp_get_printf_sizeof_size(printf_info))
>        cl_gpgpu_unmap_printf_buffer(gpgpu, 1);
> +  }
>  
> +  if (printf_info) {
>      interp_release_printf_info(printf_info);
>      global_wk_sz[0] = global_wk_sz[1] = global_wk_sz[2] = 0;
>      cl_gpgpu_set_printf_info(gpgpu, NULL, global_wk_sz);
> -- 
> 1.8.3.2
> 
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet


More information about the Beignet mailing list