0
0
mirror of https://github.com/netwide-assembler/nasm.git synced 2025-10-10 00:25:06 -04:00
H. Peter Anvin (Intel) c341ad7300 rbtree: implement rb_first(), rb_last() operations
Add operations to get the first and last entry in the tree,
respectively. Searching for 0 or ~UINT64_C(0) is not sufficient in the
presence of duplicated keys, and is more inefficient anyway.

rb_first() followed by rb_next() until NULL, or equivalently rb_last()
followed by rb_prev() until NULL, can be used to walk the tree in key
order (ascending or descending), including all duplicate key
entries.

Since this is a *threaded* tree now, this walk can safely free entires
as it goes along, as long as the whole tree is destroyed; once any one
entry has been freed, the tree is no longer valid for anything other
than proceeding with the same tree walk.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2020-07-08 09:01:34 -07:00
2010-04-25 12:02:38 +04:00
2019-08-09 13:30:19 -07:00
2020-06-05 13:21:05 -07:00
2018-10-17 21:40:14 +03:00
2007-11-25 14:25:13 -08:00
2010-08-12 20:15:27 -07:00
2010-10-03 21:02:08 +04:00
2020-07-01 21:42:17 -07:00

NASM, the Netwide Assembler

master

Many many developers all over the net respect NASM for what it is: a widespread (thus netwide), portable (thus netwide!), very flexible and mature assembler tool with support for many output formats (thus netwide!!).

Now we have good news for you: NASM is licensed under the "simplified" (2-clause) BSD license. This means its development is open to even wider society of programmers wishing to improve their lovely assembler.

Visit our nasm.us website for more details.

With best regards, the NASM crew.

Description
A cross-platform x86 assembler with an Intel-like syntax.
https://www.nasm.us/
Readme BSD-2-Clause 14 MiB
Languages
Assembly 57%
C 36.9%
Perl 3.1%
Makefile 0.8%
M4 0.7%
Other 1.5%