"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "ebtree/ebmbtree.h" between
haproxy-2.0.13.tar.gz and haproxy-2.0.14.tar.gz

About: HAProxy is a TCP/HTTP reverse proxy which is particularly suited for high availability environments. LTS (Long-Term Support) release.

ebmbtree.h  (haproxy-2.0.13):ebmbtree.h  (haproxy-2.0.14)
skipping to change at line 39 skipping to change at line 39
#define EBMB_ROOT EB_ROOT #define EBMB_ROOT EB_ROOT
#define EBMB_TREE_HEAD EB_TREE_HEAD #define EBMB_TREE_HEAD EB_TREE_HEAD
/* This structure carries a node, a leaf, and a key. It must start with the /* This structure carries a node, a leaf, and a key. It must start with the
* eb_node so that it can be cast into an eb_node. We could also have put some * eb_node so that it can be cast into an eb_node. We could also have put some
* sort of transparent union here to reduce the indirection level, but the fact * sort of transparent union here to reduce the indirection level, but the fact
* is, the end user is not meant to manipulate internals, so this is pointless. * is, the end user is not meant to manipulate internals, so this is pointless.
* The 'node.bit' value here works differently from scalar types, as it contains * The 'node.bit' value here works differently from scalar types, as it contains
* the number of identical bits between the two branches. * the number of identical bits between the two branches.
* Note that we take a great care of making sure the key is located exactly at
* the end of the struct even if that involves holes before it, so that it
* always aliases any external key a user would append after. This is why the
* key uses the same alignment as the struct.
*/ */
struct ebmb_node { struct ebmb_node {
struct eb_node node; /* the tree node, must be at the beginning */ struct eb_node node; /* the tree node, must be at the beginning */
ALWAYS_ALIGN(sizeof(void*));
unsigned char key[0]; /* the key, its size depends on the application */ unsigned char key[0]; /* the key, its size depends on the application */
}; } ALIGNED(sizeof(void*));
/* /*
* Exported functions and macros. * Exported functions and macros.
* Many of them are always inlined because they are extremely small, and * Many of them are always inlined because they are extremely small, and
* are generally called at most once or twice in a program. * are generally called at most once or twice in a program.
*/ */
/* Return leftmost node in the tree, or NULL if none */ /* Return leftmost node in the tree, or NULL if none */
static forceinline struct ebmb_node *ebmb_first(struct eb_root *root) static forceinline struct ebmb_node *ebmb_first(struct eb_root *root)
{ {
 End of changes. 3 change blocks. 
1 lines changed or deleted 6 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)