[Lldb-commits] [lldb] 0b8eff1 - [LLDB][NFC] Fix a incorrect use of shared_ptr in RenderScriptRuntime.cpp

Shivam Gupta via lldb-commits lldb-commits at lists.llvm.org
Mon Feb 6 08:38:05 PST 2023


Author: Shivam Gupta
Date: 2023-02-06T22:07:43+05:30
New Revision: 0b8eff1f8724c6d8e890227597060109cb55e1ca

URL: https://github.com/llvm/llvm-project/commit/0b8eff1f8724c6d8e890227597060109cb55e1ca
DIFF: https://github.com/llvm/llvm-project/commit/0b8eff1f8724c6d8e890227597060109cb55e1ca.diff

LOG: [LLDB][NFC] Fix a incorrect use of shared_ptr in RenderScriptRuntime.cpp

Incorrect use of shared_ptr.

found by PVS-Studio https://pvs-studio.com/en/blog/posts/cpp/1003/, N8 & N9.

Differential Revision: https://reviews.llvm.org/D142309

Added: 
    

Modified: 
    lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
    lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h

Removed: 
    


################################################################################
diff  --git a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
index e168241fb2c97..cc43ecb901038 100644
--- a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
+++ b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
@@ -2346,7 +2346,7 @@ void RenderScriptRuntime::SetElementSize(Element &elem) {
 // Given an allocation, this function copies the allocation contents from
 // device into a buffer on the heap. Returning a shared pointer to the buffer
 // containing the data.
-std::shared_ptr<uint8_t>
+std::shared_ptr<uint8_t []>
 RenderScriptRuntime::GetAllocationData(AllocationDetails *alloc,
                                        StackFrame *frame_ptr) {
   Log *log = GetLog(LLDBLog::Language);
@@ -2368,7 +2368,7 @@ RenderScriptRuntime::GetAllocationData(AllocationDetails *alloc,
 
   // Allocate a buffer to copy data into
   const uint32_t size = *alloc->size.get();
-  std::shared_ptr<uint8_t> buffer(new uint8_t[size]);
+  std::shared_ptr<uint8_t []> buffer(new uint8_t[size]);
   if (!buffer) {
     LLDB_LOGF(log, "%s - couldn't allocate a %" PRIu32 " byte buffer",
               __FUNCTION__, size);
@@ -2557,7 +2557,7 @@ bool RenderScriptRuntime::LoadAllocation(Stream &strm, const uint32_t alloc_id,
 // saved to the file as the ElementHeader struct followed by offsets to the
 // structs of all the element's children.
 size_t RenderScriptRuntime::PopulateElementHeaders(
-    const std::shared_ptr<uint8_t> header_buffer, size_t offset,
+    const std::shared_ptr<uint8_t []> header_buffer, size_t offset,
     const Element &elem) {
   // File struct for an element header with all the relevant details copied
   // from elem. We assume members are valid already.
@@ -2661,7 +2661,7 @@ bool RenderScriptRuntime::SaveAllocation(Stream &strm, const uint32_t alloc_id,
   }
 
   // Read allocation into buffer of heap memory
-  const std::shared_ptr<uint8_t> buffer = GetAllocationData(alloc, frame_ptr);
+  const std::shared_ptr<uint8_t []> buffer = GetAllocationData(alloc, frame_ptr);
   if (!buffer) {
     strm.Printf("Error: Couldn't read allocation data into buffer");
     strm.EOL();
@@ -2695,7 +2695,7 @@ bool RenderScriptRuntime::SaveAllocation(Stream &strm, const uint32_t alloc_id,
   }
 
   // Create the headers describing the element type of the allocation.
-  std::shared_ptr<uint8_t> element_header_buffer(
+  std::shared_ptr<uint8_t []> element_header_buffer(
       new uint8_t[element_header_size]);
   if (element_header_buffer == nullptr) {
     strm.Printf("Internal Error: Couldn't allocate %" PRIu64
@@ -3214,7 +3214,7 @@ bool RenderScriptRuntime::DumpAllocation(Stream &strm, StackFrame *frame_ptr,
             __FUNCTION__, data_size);
 
   // Allocate a buffer to copy data into
-  std::shared_ptr<uint8_t> buffer = GetAllocationData(alloc, frame_ptr);
+  std::shared_ptr<uint8_t []> buffer = GetAllocationData(alloc, frame_ptr);
   if (!buffer) {
     strm.Printf("Error: Couldn't read allocation data");
     strm.EOL();

diff  --git a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h
index bc460706fd295..336058ede9b96 100644
--- a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h
+++ b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h
@@ -528,7 +528,7 @@ class RenderScriptRuntime : public lldb_private::CPPLanguageRuntime {
 
   AllocationDetails *FindAllocByID(Stream &strm, const uint32_t alloc_id);
 
-  std::shared_ptr<uint8_t> GetAllocationData(AllocationDetails *alloc,
+  std::shared_ptr<uint8_t []> GetAllocationData(AllocationDetails *alloc,
                                              StackFrame *frame_ptr);
 
   void SetElementSize(Element &elem);
@@ -538,7 +538,7 @@ class RenderScriptRuntime : public lldb_private::CPPLanguageRuntime {
 
   void FindStructTypeName(Element &elem, StackFrame *frame_ptr);
 
-  size_t PopulateElementHeaders(const std::shared_ptr<uint8_t> header_buffer,
+  size_t PopulateElementHeaders(const std::shared_ptr<uint8_t []> header_buffer,
                                 size_t offset, const Element &elem);
 
   size_t CalculateElementHeaderSize(const Element &elem);


        


More information about the lldb-commits mailing list