From f1e1cc4695b34b292454e903adbf09e66cf2e9d5 Mon Sep 17 00:00:00 2001 From: Joshua Haberman Date: Thu, 17 Feb 2011 19:14:53 -0800 Subject: Split inttable into a hash part and an array part. upb_inttable() now supports a "compact" operation that will decide on an array size and put all entries with small enough keys into the array part for faster lookup. Also exposed the upb_itof_ent structure and put a few useful values there, so they are one fewer pointer chase away. --- src/upb.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/upb.h') diff --git a/src/upb.h b/src/upb.h index 837fc52..c5b4310 100644 --- a/src/upb.h +++ b/src/upb.h @@ -29,6 +29,12 @@ extern "C" { #define UPB_MIN(x, y) ((x) < (y) ? (x) : (y)) #define UPB_INDEX(base, i, m) (void*)((char*)(base) + ((i)*(m))) +// Rounds val up to the next multiple of align. +INLINE size_t upb_align_up(size_t val, size_t align) { + return val % align == 0 ? val : val + align - (val % align); +} + + // The maximum that any submessages can be nested. Matches proto2's limit. #define UPB_MAX_NESTING 64 -- cgit v1.2.3