--- a/src/hotspot/os/aix/os_perf_aix.cpp Tue Jul 17 12:03:10 2018 -0700
+++ b/src/hotspot/os/aix/os_perf_aix.cpp Tue Jul 17 15:59:47 2018 -0400
@@ -893,21 +893,14 @@
}
int SystemProcessInterface::SystemProcesses::ProcessIterator::next_process() {
- struct dirent* entry;
-
if (!is_valid()) {
return OS_ERR;
}
do {
- entry = os::readdir(_dir, _entry);
- if (entry == NULL) {
- // error
- _valid = false;
- return OS_ERR;
- }
+ _entry = os::readdir(_dir);
if (_entry == NULL) {
- // reached end
+ // Error or reached end. Could use errno to distinguish those cases.
_valid = false;
return OS_ERR;
}
@@ -929,11 +922,8 @@
}
SystemProcessInterface::SystemProcesses::ProcessIterator::~ProcessIterator() {
- if (_entry != NULL) {
- FREE_C_HEAP_ARRAY(char, _entry);
- }
if (_dir != NULL) {
- closedir(_dir);
+ os::closedir(_dir);
}
}