Chromium Code Reviews| Index: debugger/rsp/rsp_blob_utils.h |
| =================================================================== |
| --- debugger/rsp/rsp_blob_utils.h (revision 956) |
| +++ debugger/rsp/rsp_blob_utils.h (working copy) |
| @@ -42,6 +42,28 @@ |
| return (i > 0); |
| } |
| + /// leading zeroes are ignored |
| + template <class T> |
| + debug::Blob& PushIntToBack(T value, debug::Blob* blob) { |
| + if (NULL == blob) |
| + return *blob; |
|
mmortensen
2011/07/21 17:19:33
If blob is NULL, we don't want to deference it.
In
garianov1
2011/07/21 17:31:45
changed to assert(NULL != blob);
|
| + |
| + debug::Blob tmp; |
| + for (size_t i = 0; i < sizeof(value); i++) { |
| + uint8_t x = (value & 0xFF); |
| + tmp.PushFront(debug::Blob::GetHexDigit(x, 0)); |
| + tmp.PushFront(debug::Blob::GetHexDigit(x, 1)); |
| + if (sizeof(value) > 1) |
| + value = value >> 8; |
| + } |
| + tmp.PopMatchingBytesFromFront(debug::Blob().FromString("0")); |
| + if (0 == tmp.size()) |
| + blob->PushBack('0'); |
| + else |
| + blob->Append(tmp); |
| + return *blob; |
| + } |
| + |
| /// removes space characters from front and from back of the blob. |
| /// @param blob blob to perform operation on |
| void RemoveSpacesFromBothEnds(debug::Blob* blob); |