summaryrefslogtreecommitdiff
path: root/memory_replay
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2017-08-07 09:30:37 -0700
committerElliott Hughes <enh@google.com>2017-08-07 09:30:37 -0700
commitdc7d1ddf171f87a5c70e7d8cebd4c858082e9639 (patch)
tree1919073063bd4d16655ba07e6a6f42db26b8b150 /memory_replay
parent3b7e114229353945d1265c99ce8f0a5c987408f0 (diff)
downloadextras-dc7d1ddf171f87a5c70e7d8cebd4c858082e9639.tar.gz
Fix fd ownership issue in PrintNativeInfo/GetNativeInfo.
Bug: N/A Test: ran tests Change-Id: I10bdeeb38404583560685bf47c58f6770fc9050b Signed-off-by: Ivan Maidanski <i.maidanski@samsung.com>
Diffstat (limited to 'memory_replay')
-rw-r--r--memory_replay/Android.mk2
-rw-r--r--memory_replay/NativeInfo.cpp7
2 files changed, 5 insertions, 4 deletions
diff --git a/memory_replay/Android.mk b/memory_replay/Android.mk
index 2b299ada..b72f0061 100644
--- a/memory_replay/Android.mk
+++ b/memory_replay/Android.mk
@@ -17,6 +17,7 @@ LOCAL_MODULE := memory_replay
LOCAL_MULTILIB := both
LOCAL_MODULE_STEM_32 := $(LOCAL_MODULE)32
LOCAL_MODULE_STEM_64 := $(LOCAL_MODULE)64
+LOCAL_SHARED_LIBRARIES := libbase
include $(BUILD_EXECUTABLE)
include $(CLEAR_VARS)
@@ -27,6 +28,7 @@ LOCAL_MODULE_TAGS := debug
LOCAL_MODULE := memory_replay
LOCAL_MODULE_HOST_OS := linux
LOCAL_LDLIBS := -lrt
+LOCAL_SHARED_LIBRARIES := libbase
include $(BUILD_HOST_EXECUTABLE)
memory_replay_test_src_files := \
diff --git a/memory_replay/NativeInfo.cpp b/memory_replay/NativeInfo.cpp
index b88eaf68..18c832bb 100644
--- a/memory_replay/NativeInfo.cpp
+++ b/memory_replay/NativeInfo.cpp
@@ -25,6 +25,8 @@
#include <sys/stat.h>
#include <unistd.h>
+#include <android-base/unique_fd.h>
+
#include "LineBuffer.h"
#include "NativeInfo.h"
@@ -55,7 +57,6 @@ void GetNativeInfo(int smaps_fd, size_t* pss_bytes, size_t* va_bytes) {
total_pss_bytes += native_pss_kB * 1024;
}
}
- close(smaps_fd);
*pss_bytes = total_pss_bytes;
*va_bytes = total_va_bytes;
}
@@ -64,7 +65,7 @@ void PrintNativeInfo(const char* preamble) {
size_t pss_bytes;
size_t va_bytes;
- int smaps_fd = open("/proc/self/smaps", O_RDONLY);
+ android::base::unique_fd smaps_fd(open("/proc/self/smaps", O_RDONLY));
if (smaps_fd == -1) {
err(1, "Cannot open /proc/self/smaps: %s\n", strerror(errno));
}
@@ -73,6 +74,4 @@ void PrintNativeInfo(const char* preamble) {
printf("%sNative PSS: %zu bytes %0.2fMB\n", preamble, pss_bytes, pss_bytes/(1024*1024.0));
printf("%sNative VA Space: %zu bytes %0.2fMB\n", preamble, va_bytes, va_bytes/(1024*1024.0));
fflush(stdout);
-
- close(smaps_fd);
}