Fix art usage of readdir_r(3).
Change-Id: Ieb8c90c8bd9b9b9cf075519992d4156b0ca6273b
diff --git a/src/common_test.h b/src/common_test.h
index 273d70e..67d2266 100644
--- a/src/common_test.h
+++ b/src/common_test.h
@@ -396,20 +396,14 @@
ASSERT_TRUE(android_data != NULL);
DIR* dir = opendir(art_cache_.c_str());
ASSERT_TRUE(dir != NULL);
- while (true) {
- dirent entry;
- dirent* entry_ptr;
- int readdir_result = readdir_r(dir, &entry, &entry_ptr);
- ASSERT_EQ(0, readdir_result);
- if (entry_ptr == NULL) {
- break;
- }
- if ((strcmp(entry_ptr->d_name, ".") == 0) || (strcmp(entry_ptr->d_name, "..") == 0)) {
+ dirent* e;
+ while ((e = readdir(dir)) != NULL) {
+ if ((strcmp(e->d_name, ".") == 0) || (strcmp(e->d_name, "..") == 0)) {
continue;
}
std::string filename(art_cache_);
filename.push_back('/');
- filename.append(entry_ptr->d_name);
+ filename.append(e->d_name);
int unlink_result = unlink(filename.c_str());
ASSERT_EQ(0, unlink_result);
}
diff --git a/src/thread_list.cc b/src/thread_list.cc
index 4b2e17f..43a0cee 100644
--- a/src/thread_list.cc
+++ b/src/thread_list.cc
@@ -89,12 +89,11 @@
return;
}
- dirent de;
- dirent* e;
Thread* self = Thread::Current();
- while (!readdir_r(d, &de, &e) && e != NULL) {
+ dirent* e;
+ while ((e = readdir(d)) != NULL) {
char* end;
- pid_t tid = strtol(de.d_name, &end, 10);
+ pid_t tid = strtol(e->d_name, &end, 10);
if (!*end) {
bool contains;
{