summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2017-08-07 23:09:48 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2017-08-07 23:09:48 +0000
commit6278bc9fd84a5a53c278357628bc947f2b91c3f5 (patch)
tree5585cc8e91717f659603bfc064370fcdedbc03bb
parent51bdff6ccb73bb5e98bb2b9b7b1728d47cb55c0c (diff)
parentdc7d1ddf171f87a5c70e7d8cebd4c858082e9639 (diff)
downloadextras-6278bc9fd84a5a53c278357628bc947f2b91c3f5.tar.gz
Merge "Fix fd ownership issue in PrintNativeInfo/GetNativeInfo."
-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);
}