citrun

watch C/C++ source code execute
Log | Files | Refs | LICENSE

commit b9369337199bf857a4e61bdad526d3ff763d6e5d
parent 6234123172e67b055cd162e0ce37735f6c8445b7
Author: Kyle Milz <kyle@0x30.net>
Date:   Fri,  5 Aug 2016 17:45:41 -0600

src: use a common read_string() function

Diffstat:
Msrc/af_unix.cc | 10++++++++++
Msrc/af_unix.h | 1+
Msrc/runtime.cc | 15+++------------
3 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/src/af_unix.cc b/src/af_unix.cc @@ -132,6 +132,16 @@ af_unix::write_all(uint8_t *buf, size_t bytes_total) return bytes_wrote; } +void +af_unix::read_string(std::string &str) +{ + uint16_t sz; + + read_all(sz); + str.resize(sz); + read_all((uint8_t *)&str[0], sz); +} + int af_unix::read_all(uint8_t *buf, size_t bytes_total) { diff --git a/src/af_unix.h b/src/af_unix.h @@ -21,6 +21,7 @@ public: return read_all((uint8_t *)&buf, sizeof(T)); }; + void read_string(std::string &); int read_all(uint8_t *, size_t); int write_all(uint8_t *, size_t); private: diff --git a/src/runtime.cc b/src/runtime.cc @@ -24,7 +24,6 @@ RuntimeProcess::RuntimeProcess(af_unix &sock) : m_socket(sock), m_tus_with_execs(0) { - uint16_t sz; assert(sizeof(pid_t) == 4); // Protocol defined in lib/runtime.c send_static(). @@ -37,20 +36,12 @@ RuntimeProcess::RuntimeProcess(af_unix &sock) : m_socket.read_all(m_pid); m_socket.read_all(m_ppid); m_socket.read_all(m_pgrp); - - m_socket.read_all(sz); - m_progname.resize(sz); - m_socket.read_all((uint8_t *)&m_progname[0], sz); - - m_socket.read_all(sz); - m_cwd.resize(sz); - m_socket.read_all((uint8_t *)&m_cwd[0], sz); + m_socket.read_string(m_progname); + m_socket.read_string(m_cwd); m_tus.resize(m_num_tus); for (auto &t : m_tus) { - m_socket.read_all(sz); - t.file_name.resize(sz); - m_socket.read_all((uint8_t *)&t.file_name[0], sz); + m_socket.read_string(t.file_name); m_socket.read_all(t.num_lines); m_socket.read_all(t.inst_sites);