Simplify OBJ_obj2nid()
authortb <tb@openbsd.org>
Wed, 13 Dec 2023 23:28:47 +0000 (23:28 +0000)
committertb <tb@openbsd.org>
Wed, 13 Dec 2023 23:28:47 +0000 (23:28 +0000)
commitf4a64515fca92f110ff043f56f80c410ac47cf3e
tree68057698668e857119092d8e53a4e58d47088897
parent7c73d09c2efe0a1049f5556da74181668d20a1fb
Simplify OBJ_obj2nid()

Continue with OBJ_bsearch_() elimination.

OBJ_obj2nid() first checks if the object identifier passed in has a nid
and if so, it returns that. Otherwise, it looks into the global hash of
added objects (of course without locking) for a match and then returns
the nid thereof. As a last attempt, it searches the table of built-in
object identifiers.

The last two steps can be cleaned up and simplified quite a bit by using
C99 initializers, bsearch() and an appropriate comparison function. Then
it becomes obvious that bsearch() already returns a pointer to the nid
we're looking for, so there is no point in converting that into its
corresponding obj and returning the nid thereof.

ok jsing
lib/libcrypto/objects/obj_dat.c