Implement DDMS recent allocation tracking.
Change-Id: I7cec7311ba496f93e147ae17fbce94d4d17b5269
diff --git a/src/jdwp/jdwp_bits.h b/src/jdwp/jdwp_bits.h
index 3b951f9..5e5b120 100644
--- a/src/jdwp/jdwp_bits.h
+++ b/src/jdwp/jdwp_bits.h
@@ -21,6 +21,8 @@
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
+#include <string>
+#include <vector>
namespace art {
@@ -80,15 +82,52 @@
return buf;
}
+static inline void Append1BE(std::vector<uint8_t>& bytes, uint8_t value) {
+ bytes.push_back(value);
+}
+
+static inline void Append2BE(std::vector<uint8_t>& bytes, uint16_t value) {
+ bytes.push_back(static_cast<uint8_t>(value >> 8));
+ bytes.push_back(static_cast<uint8_t>(value));
+}
+
+static inline void Append4BE(std::vector<uint8_t>& bytes, uint32_t value) {
+ bytes.push_back(static_cast<uint8_t>(value >> 24));
+ bytes.push_back(static_cast<uint8_t>(value >> 16));
+ bytes.push_back(static_cast<uint8_t>(value >> 8));
+ bytes.push_back(static_cast<uint8_t>(value));
+}
+
+static inline void Append8BE(std::vector<uint8_t>& bytes, uint64_t value) {
+ bytes.push_back(static_cast<uint8_t>(value >> 56));
+ bytes.push_back(static_cast<uint8_t>(value >> 48));
+ bytes.push_back(static_cast<uint8_t>(value >> 40));
+ bytes.push_back(static_cast<uint8_t>(value >> 32));
+ bytes.push_back(static_cast<uint8_t>(value >> 24));
+ bytes.push_back(static_cast<uint8_t>(value >> 16));
+ bytes.push_back(static_cast<uint8_t>(value >> 8));
+ bytes.push_back(static_cast<uint8_t>(value));
+}
+
+static inline void AppendUtf16BE(std::vector<uint8_t>& bytes, const uint16_t* chars, size_t char_count) {
+ Append4BE(bytes, char_count);
+ for (size_t i = 0; i < char_count; ++i) {
+ Append2BE(bytes, chars[i]);
+ }
+}
+
+// @deprecated
static inline void Set1(uint8_t* buf, uint8_t val) {
*buf = (uint8_t)(val);
}
+// @deprecated
static inline void Set2BE(uint8_t* buf, uint16_t val) {
*buf++ = (uint8_t)(val >> 8);
*buf = (uint8_t)(val);
}
+// @deprecated
static inline void Set4BE(uint8_t* buf, uint32_t val) {
*buf++ = (uint8_t)(val >> 24);
*buf++ = (uint8_t)(val >> 16);
@@ -96,6 +135,7 @@
*buf = (uint8_t)(val);
}
+// @deprecated
static inline void Set8BE(uint8_t* buf, uint64_t val) {
*buf++ = (uint8_t)(val >> 56);
*buf++ = (uint8_t)(val >> 48);
@@ -107,29 +147,19 @@
*buf = (uint8_t)(val);
}
+// @deprecated
static inline void Write1BE(uint8_t** dst, uint8_t value) {
Set1(*dst, value);
*dst += sizeof(value);
}
-static inline void Write2BE(uint8_t** dst, uint16_t value) {
- Set2BE(*dst, value);
- *dst += sizeof(value);
-}
-
+// @deprecated
static inline void Write4BE(uint8_t** dst, uint32_t value) {
Set4BE(*dst, value);
*dst += sizeof(value);
}
-static inline void Write8BE(uint8_t** dst, uint64_t value) {
- Set8BE(*dst, value);
- *dst += sizeof(value);
-}
-
-/*
- * Stuff a UTF-8 string into the buffer.
- */
+// @deprecated
static inline void SetUtf8String(uint8_t* buf, const uint8_t* str) {
uint32_t strLen = strlen((const char*)str);
Set4BE(buf, strLen);