Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(667)

Unified Diff: experimental/windows_debugger/debugger/base/debug_blob.cc

Issue 10928195: First round of dead file removal (Closed) Base URL: https://github.com/samclegg/nativeclient-sdk.git@master
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: experimental/windows_debugger/debugger/base/debug_blob.cc
diff --git a/experimental/windows_debugger/debugger/base/debug_blob.cc b/experimental/windows_debugger/debugger/base/debug_blob.cc
deleted file mode 100644
index fd8f00e65e21fb9973c05d85ca8841faf5c82ae9..0000000000000000000000000000000000000000
--- a/experimental/windows_debugger/debugger/base/debug_blob.cc
+++ /dev/null
@@ -1,395 +0,0 @@
-// Copyright (c) 2011 The Native Client Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-#include "debug_blob.h"
-#include <algorithm>
-#include <ctype.h>
-#include <stdarg.h>
-#include <string>
-
-namespace debug {
-char Blob::GetHexDigit(unsigned int value, int digit_position) {
- const char* kDigitStrings = "0123456789abcdef";
- unsigned int digit = (value >> (4 * digit_position)) & 0xF;
- return kDigitStrings[digit];
-}
-
-Blob::Blob() {
-}
-
-Blob::Blob(const Blob& other) {
- value_ = other.value_;
-}
-
-Blob::Blob(const void* buff, size_t buff_sz) {
- const byte* char_buff = static_cast<const byte*>(buff);
- for (size_t i = 0; i < buff_sz; i++ )
- PushBack(*char_buff++);
-}
-
-Blob::Blob(const char* buff) {
- if (NULL != buff) {
- for (size_t i = 0; i < strlen(buff); i++ )
- PushBack(buff[i]);
- }
-}
-
-Blob::Blob(const std::string& str) {
- Append(str.c_str());
-}
-
-Blob::~Blob() {
-}
-
-Blob& Blob::operator = (const Blob& other) {
- value_ = other.value_;
- return *this;
-}
-
-bool Blob::operator == (const Blob& other) const {
- return value_ == other.value_;
-}
-
-byte Blob::operator[] (size_t position) const {
- return value_[position];
-}
-
-byte Blob::GetAt(size_t position) const {
- return value_[position];
-}
-
-byte Blob::Front() const {
- return value_.front();
-}
-
-byte Blob::Back() const {
- return value_.back();
-}
-
-byte Blob::PopFront() {
- byte c = value_.front();
- value_.pop_front();
- return c;
-}
-
-byte Blob::PopBack() {
- byte c = value_.back();
- value_.pop_back();
- return c;
-}
-
-void Blob::PushFront(byte c) {
- value_.push_front(c);
-}
-
-void Blob::PushBack(byte c) {
- value_.push_back(c);
-}
-
-void Blob::Clear() {
- value_.clear();
-}
-
-void Blob::Format(const char* fmt, ...) {
- va_list marker;
- va_start(marker, fmt);
- char buff[32 * 1024]; // It's big enough for RSP messages.
- signed int res = _vsnprintf_s(buff, sizeof(buff) - 1, fmt, marker);
- if (-1 != res) {
- buff[sizeof(buff) - 1] = 0;
- buff[res] = 0;
- *this = buff;
- }
-}
-
-unsigned int Blob::ToInt() const {
- unsigned int result = 0;
-// size_t sz = sizeof(result);
- char* ptr = reinterpret_cast<char*>(&result);
- size_t bytes_to_copy = std::min(sizeof(result), size());
- for (size_t i = 0; i < bytes_to_copy; i++)
- ptr[i] = value_[i];
- return result;
-}
-
-std::string Blob::ToString() const {
- std::string result;
- for (size_t i = 0; i < size(); i++)
- result.append(1, value_[i]);
- return result;
-}
-
-std::string Blob::ToHexString(bool remove_leading_zeroes) const {
- std::string result;
- size_t num = size();
- for (size_t i = 0; i < num; i++) {
- char c = GetHexDigit(value_[i], 1);
- result.append(1, c);
- c = GetHexDigit(value_[i], 0);
- result.append(1, c);
- }
-
- if (remove_leading_zeroes) {
- while (result[0] == '0')
- result.erase(0, 1);
- }
- return result;
-}
-
-void* Blob::ToCBuffer() const {
- if (0 == size())
- return NULL;
- byte* buff = reinterpret_cast<byte*>(malloc(size()));
- if (NULL != buff) {
- for (size_t i = 0; i < size(); i++)
- buff[i] = GetAt(i);
- }
- return buff;
-}
-
-size_t Blob::Peek(size_t offset, void* buff, size_t buff_sz) const {
- byte* out = static_cast<byte*>(buff);
- size_t copied_bytes = 0;
- for (size_t i = 0; i < buff_sz; i++) {
- size_t pos = offset + i;
- if (pos >= size())
- break;
- out[i] = GetAt(pos);
- copied_bytes++;
- }
- return copied_bytes;
-}
-
-bool Blob::LoadFromHexString(const std::string& hex_str) {
- Clear();
- size_t num = hex_str.size();
- for (size_t i = num; i > 0; i -= 2) {
- if (isspace(hex_str[i - 1])) {
- i++;
- } else if (i >= 2) {
- unsigned int c1 = 0;
- unsigned int c2 = 0;
- if (!HexCharToInt(hex_str[i - 1], &c1)) return false;
- if (!HexCharToInt(hex_str[i - 2], &c2)) return false;
- unsigned int c = c1 + (c2 << 4);
- PushFront(c);
- } else {
- unsigned int c = 0;
- if (!HexCharToInt(hex_str[i - 1], &c)) return false;
- PushFront(c);
- break;
- }
- }
- return true;
-}
-
-void Blob::Append(const Blob& blob) {
- for (size_t i = 0; i < blob.size(); i++)
- PushBack(blob[i]);
-}
-
-bool Blob::Compare(const Blob& blob, size_t to_length) const {
- if (-1 == to_length) {
- if (size() != blob.size())
- return false;
- to_length = size();
- }
- for (size_t i = 0; i < to_length; i++)
- if (value_[i] != blob[i])
- return false;
- return true;
-}
-
-bool Blob::IsPrefix(const Blob& prefix) const {
- size_t num = prefix.size();
- if (size() < num)
- return false;
- for (size_t i = 0; i < num; i++)
- if (value_[i] != prefix[i])
- return false;
- return true;
-}
-
-void Blob::PopMatchingCharsFromFront(const char* chars) {
- while (size()) {
- char c = Front();
- if (NULL == strchr(chars, c))
- break;
- else
- PopFront();
- }
-}
-
-Blob Blob::PopBlobFromFrontUnilChars(const char* chars) {
- Blob result;
- while (size()) {
- char c = PopFront();
- if (NULL != strchr(chars, c))
- break;
- else
- result.PushBack(c);
- }
- return result;
-}
-
-unsigned int Blob::PopInt8FromFront() {
- if (size() < 2)
- return 0;
- unsigned int dig1 = 0;
- unsigned int dig2 = 0;
- HexCharToInt(PopFront(), &dig1);
- HexCharToInt(PopFront(), &dig2);
- return (dig1 * 16) + dig2;
-}
-
-u_int32_t Blob::PopInt32FromFront() {
- u_int32_t res = 0;
- size_t nibbles_to_copy = sizeof(res) * 2;
- for (size_t i = 0; i < nibbles_to_copy; i++) {
- if (0 == size())
- break;
- unsigned int dig = 0;
- HexCharToInt(PopFront(), &dig);
- res = (res << 4) + dig;
- }
- return res;
-}
-
-u_int64_t Blob::PopInt64FromFront() {
- u_int64_t res = 0;
- size_t nibbles_to_copy = sizeof(res) * 2;
- for (size_t i = 0; i < nibbles_to_copy; i++) {
- if (0 == size())
- break;
- unsigned int dig = 0;
- HexCharToInt(PopFront(), &dig);
- res = (res << 4) + dig;
- }
- return res;
-}
-
-void Blob::Reverse() {
- std::reverse(value_.begin(), value_.end());
-}
-
-void Blob::Split(const char* delimiters, std::deque<Blob>* tokens) const {
- tokens->clear();
- Blob token;
- std::deque<byte>::const_iterator it = value_.begin();
- while (value_.end() != it) {
- byte c = *it++;
- if (strchr(delimiters, c) != 0) {
- tokens->push_back(token);
- token.Clear();
- } else {
- token.PushBack(c);
- }
- }
- if (0 != token.size())
- tokens->push_back(token);
-}
-
-void Blob::PopSpacesFromBothEnds() {
- while (size() != 0) {
- char c = Front();
- if (0 != isspace(c))
- PopFront();
- else
- break;
- }
- while (size() != 0) {
- char c = Back();
- if (0 != isspace(c))
- PopBack();
- else
- break;
- }
-}
-
-bool Blob::HexCharToInt(unsigned char c, unsigned int* result) {
- if (('0' <= c) && ('9' >= c)) {
- *result = c - '0';
- }
- else if (('A' <= c) && ('F' >= c)) {
- *result = c - 'A' + 10;
- }
- else if (('a' <= c) && ('f' >= c)) {
- *result = c - 'a' + 10;
- }
- else {
- return false;
- }
- return true;
-}
-
-//--------------------------------------------------------------------------------------------//
-#define my_assert(x) do{ if(!(x)) {*error="Failed: "#x; return __LINE__;}} while(false)
-
-BlobUniTest::BlobUniTest() {
-}
-
-int BlobUniTest::Run(std::string* error) {
- if (true) {
- unsigned char buff[] = {0x3, 0xAF, 0xF0};
- Blob blob(buff, sizeof(buff));
- std::string str = blob.ToHexString(true);
- my_assert(str == "3aff0");
-
- str = blob.ToHexString(false);
- my_assert(str == "03aff0");
-
- my_assert(blob[0] == 0x3);
- my_assert(blob[1] == 0xAF);
- my_assert(blob[2] == 0xF0);
- my_assert(blob.size() == 3);
-
- Blob blob2(blob);
- my_assert(blob2 == blob);
- my_assert(blob2[0] == 0x3);
- my_assert(blob2[1] == 0xAF);
- my_assert(blob2[2] == 0xF0);
- my_assert(blob2.size() == 3);
-
- Blob blob3;
- blob3 = blob;
- my_assert(blob3 == blob);
- my_assert(blob3[0] == 0x3);
- my_assert(blob3[1] == 0xAF);
- my_assert(blob3[2] == 0xF0);
- my_assert(blob3.size() == 3);
-
- Blob blob4;
- blob4.LoadFromHexString(std::string("3aff0"));
- my_assert(blob4 == blob);
-
- Blob blob5;
- blob5.LoadFromHexString(std::string("03aff0"));
- my_assert(blob5 == blob);
-
- Blob blob6(std::string("03aff0").c_str());
- Blob blob7;
- blob7.LoadFromHexString(blob6.ToString());
- my_assert(blob7 == blob);
-
- }
-
- if (true) {
- unsigned char buff[] = {0, 0x3, 0xAF, 0xF0};
- Blob blob(buff, sizeof(buff));
- std::string str = blob.ToHexString(true);
- my_assert(str == "3aff0");
-
- str = blob.ToHexString(false);
- my_assert(str == "0003aff0");
-
- my_assert(blob[0] == 0);
- my_assert(blob[1] == 0x3);
- my_assert(blob[2] == 0xAF);
- my_assert(blob[3] == 0xF0);
- my_assert(blob.size() == 4);
- }
-
- return 0;
-} // returns 0 if success, error code if failed.
-
-} // namespace debug

Powered by Google App Engine
This is Rietveld 408576698