nasm/include
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
..
bytesex.h bytesex.h: more simplifications and add const 2017-11-29 17:19:27 -08:00
compiler.h Change unused -> unused_func to remove special case 2020-07-01 20:49:04 -07:00
disp8.h Reorganize the source code into subdirectories 2016-05-25 12:06:29 -07:00
error.h BR 3392652: hold smacro expansion warnings until we are sure 2020-06-04 15:59:47 -07:00
hashtbl.h preprocessor: major cleanups; inline text into Token 2019-09-23 16:40:03 -07:00
iflag.h LEA: allow immediate syntax; ignore operand size entirely 2019-08-14 15:23:00 -07:00
ilog2.h Remove #includes already provided by "compiler.h" 2018-12-27 12:45:44 -08:00
insns.h Merge tag 'nasm-2.13.03' 2018-02-07 13:51:54 -08:00
labels.h Change LBL_NONE to LBL_none 2019-09-12 20:26:23 -04:00
md5.h Reorganize the source code into subdirectories 2016-05-25 12:06:29 -07:00
nasm.h Make debug info and error messages correctly reflect macros and reps 2020-07-05 02:16:13 -07:00
nasmint.h nasmint.h: change header guards to NASM_NASMINT_H 2016-10-04 18:11:57 -07:00
nasmlib.h BR 3392667: more reasonable limit for expression descent 2020-06-01 13:21:05 -07:00
nctype.h Restore the ability to have ? in identifiers, except ? itself 2018-12-14 00:57:05 -08:00
opflags.h opflags: Convert is_class and is_reg_class to helpers 2018-10-13 22:57:30 +03:00
perfhash.h Add generic perfect string hashes, use for directives 2017-04-03 00:27:07 -07:00
raa.h RAA: make pointer vs integer RAAs type safe 2018-06-18 17:11:54 -07:00
rbtree.h rbtree: implement rb_first(), rb_last() operations 2020-07-08 09:01:34 -07:00
rdoff.h rdoff: use nasm-provided safe memory allocation and I/O 2017-04-17 13:56:50 -07:00
saa.h saa, raa: saa_init() and raa_init() will never return NULL 2017-04-23 23:37:11 -07:00
strlist.h strlist.h: move safe_alloc declaration 2020-07-01 20:54:58 -07:00
tables.h macros: can't use the __USE_*__ macro string anymore; fix comment stripping 2019-08-15 11:53:19 -07:00
ver.h nasmlib/ver.[ch]: add "compiler.h" 2018-12-26 06:37:25 -08:00