Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

util/iterator: allow retrieve last element #4278

Closed
wants to merge 1 commit into from
Closed

Conversation

XVilka
Copy link
Member

@XVilka XVilka commented Feb 20, 2024

Your checklist for this pull request

  • I've read the guidelines for contributing to this repository
  • I made sure to follow the project's coding style
  • I've documented or updated the documentation of every function and struct this PR changes. If not so I've explained why.
  • I've added tests that prove my fix is effective or that my feature works (if possible)
  • I've updated the rizin book with the relevant information (if needed)

Detailed description

It is a bit clunky thing to do, but it is needed for Cutter, and easier to implement on the Rizin side.

See rizinorg/cutter#3298 for details

Test plan

CI is green

void *tail = rz_iterator_next(it);
while (tail) {
elem = tail;
tail = rz_iterator_next(it);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm wondering if it's possible to free elem in rz_iterator_next.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point, I removed the function call and used ->next() method instead.

void *elem = NULL;
void *tail = it->next(it);
while (tail) {
elem = tail;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
elem = tail;
it->free(elem);
elem = tail;

@Rot127 Rot127 closed this Feb 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants