diff options
| -rw-r--r-- | src/til_tap.h | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/src/til_tap.h b/src/til_tap.h index 62e3c37..64eeaf0 100644 --- a/src/til_tap.h +++ b/src/til_tap.h @@ -2,6 +2,9 @@  #define _TIL_TAP_H  #include <stdint.h> +#include <string.h> + +#include "til_jenkins.h"  /* A "tap" is a named binding of a local variable+pointer to that variable.   * @@ -45,10 +48,11 @@ typedef enum til_tap_type_t {  /* this is deliberately left entirely public so taps can be easily embedded in contexts */  typedef struct til_tap_t {  	til_tap_type_t	type; -	void		*ptr;		/* points at the caller-provided tap-managed indirection pointer */ +	void		**ptr;		/* points at the caller-provided tap-managed indirection pointer */  	size_t		n_elems;	/* when > 1, *ptr is an array of n_elems elements.  Otherwise individual variable. */  	void		*elems;		/* points at the first element of type type, may or may not be an array of them */  	const char	*name; +	uint32_t	name_hash;		/* cached hash of name, set once @ initialization */  } til_tap_t;  /* just some forward declared higher-order vector and matrix types for the wrappers */ @@ -74,6 +78,7 @@ static inline til_tap_t til_tap_init(til_tap_type_t type, void *ptr, size_t n_el  		.n_elems = n_elems,  		.elems = elems,  		.name = name, +		.name_hash = til_jenkins((uint8_t *)name, strlen(name)),  	};  } | 
