Page MenuHomeFreeBSD

tdestroy: don't visit one-child node twice
ClosedPublic

Authored by dougm on Jan 14 2026, 6:06 AM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Mar 2, 9:27 AM
Unknown Object (File)
Tue, Feb 24, 6:13 AM
Unknown Object (File)
Mon, Feb 23, 10:09 PM
Unknown Object (File)
Tue, Feb 10, 4:24 AM
Unknown Object (File)
Fri, Feb 6, 4:39 PM
Unknown Object (File)
Jan 29 2026, 8:35 PM
Unknown Object (File)
Jan 29 2026, 2:41 AM
Unknown Object (File)
Jan 28 2026, 3:25 PM
Subscribers

Details

Summary

Change tdestroy() to immediately free a node with no right child as soon as it is encountered. Currently, such nodes are visited twice before deletion.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

dougm requested review of this revision.Jan 14 2026, 6:06 AM
dougm created this revision.

Remove a redundant NULL check.

Did you tested this with lib/libc/tests/stdlib/tsearch_test.c?
If it works, I am fine with it.

$ kyua test -k /usr/tests/Kyuafile lib/libc/stdlib/tsearch_test
lib/libc/stdlib/tsearch_test:tdestroy_test -> passed [0.001s]
lib/libc/stdlib/tsearch_test:tsearch_test -> passed [0.030s]

This revision is now accepted and ready to land.Jan 15 2026, 4:22 AM
This revision was automatically updated to reflect the committed changes.