static dirent* __readdir_locked(DIR* d) { if (d->available_bytes_ == 0 && !__fill_DIR(d)) { return NULL; } dirent* entry = d->next_; d->next_ = reinterpret_cast<dirent*>(reinterpret_cast<char*>(entry) + entry->d_reclen); d->available_bytes_ -= entry->d_reclen; return entry; }
static dirent* __readdir_locked(DIR* d) { if (d->available_bytes_ == 0 && !__fill_DIR(d)) { return NULL; } dirent* entry = d->next_; d->next_ = (dirent*)((char*)(entry) + entry->d_reclen); d->available_bytes_ -= entry->d_reclen; return entry; }
static dirent* __readdir_locked(DIR* d) { if (d->available_bytes_ == 0 && !__fill_DIR(d)) { return NULL; } dirent* entry = d->next_; d->next_ = reinterpret_cast<dirent*>(reinterpret_cast<char*>(entry) + entry->d_reclen); d->available_bytes_ -= entry->d_reclen; // The directory entry offset uses 0, 1, 2 instead of real file offset, // so the value range of long type is enough. d->current_pos_ = static_cast<long>(entry->d_off); return entry; }