[Lldb-commits] [lldb] r147639 - in /lldb/trunk: include/lldb/API/SBData.h include/lldb/API/SBProcess.h scripts/Python/interface/SBProcess.i scripts/Python/python-typemaps.swig source/API/SBProcess.cpp test/python_api/sbdata/TestSBData.py

Enrico Granata granata.enrico at gmail.com
Fri Jan 6 11:28:55 PST 2012



This patch moves the creation functions into SBData and adds corresponding Set functions like Greg suggested.
The SBData test case is also updated to reflect the new code layout.

- Enrico Granata

On Jan 6, 2012, at 2:16 AM, Greg Clayton wrote:

> The functions that were added to the SBProcess seem like they should be been moved to the SBData class. The only thing the process is used for is the byte order and address byte size, which no one is using. 
> 
> It seems like these should be moved to SBData as static "Create" and "SetData" fucntions and an extra parameter should be added for the byte order and address byte size:
> 
> class SBData
> {
> 
> .....
> 
>    static lldb::SBData CreateFromCString (const char* data);
>    static lldb::SBData CreateDataFromUInt64Array (lldb::ByteOrder endian, uint32_t addr_byte_size, uint64_t* array, size_t array_len);
>    static lldb::SBData CreateDataFromUInt32Array (lldb::ByteOrder endian, uint32_t addr_byte_size, uint32_t* array, size_t array_len);
>    static lldb::SBData CreateDataFromSInt64Array (lldb::ByteOrder endian, uint32_t addr_byte_size, int64_t* array, size_t array_len);
>    static lldb::SBData CreateDataFromSInt32Array (lldb::ByteOrder endian, uint32_t addr_byte_size, int32_t* array, size_t array_len);
>    static lldb::SBData CreateDataFromDoubleArray (lldb::ByteOrder endian, uint32_t addr_byte_size, double* array, size_t array_len);
> 
>    void SetDataFromCString (const char* data);
>    void SetDataFromUInt64Array (uint64_t* array, size_t array_len);
>    void SetDataFromUInt32Array (uint32_t* array, size_t array_len);
>    void SetDataFromSInt64Array (int64_t* array, size_t array_len);
>    void SetDataFromSInt32Array (int32_t* array, size_t array_len);
>    void SetDataFromDoubleArray (double* array, size_t array_len);
> 
> 
> 
> The data could add a "void SetByteOrder(lldb::ByteOrder byte_order);" accessor if needed
> 
> The use of process is not really neededed as you can also do:
> 
> data = lldb.SBData (lldb.process.GetByteOrder(), ...)
> 
> We don't want require having a process before we can make SBData objects filled with bytes.
> 
> Greg
> 
> On Jan 5, 2012, at 4:46 PM, Johnny Chen wrote:
> 
>> Author: johnny
>> Date: Thu Jan  5 18:46:12 2012
>> New Revision: 147639
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=147639&view=rev
>> Log:
>> http://llvm.org/bugs/show_bug.cgi?id=11619
>> Allow creating SBData values from arrays or primitives in Python
>> 
>> Patch submitted by Enrico Granata.



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20120106/f9ab1ead/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sbdata.diff
Type: application/octet-stream
Size: 27385 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20120106/f9ab1ead/attachment.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20120106/f9ab1ead/attachment-0001.html>


More information about the lldb-commits mailing list