clean
hashtable: update documentation Some of the existing documentation was incorrect or insufficient. Also, add new documentation to describe the design "feature" of this table: that 0/NULL is not a valid key.
hashtable: enforce, document non-zero keys HashTable does not support a key of "zero." ...
improve documentation + Doxygen formatting
hashtable: style
hashtable: style
hashtable: add const
hashtable: fixup style
printf -> model_print As we move toward redirecting program output, we will need a special printf function for model-checking prints. Just define a simple model_print() for now.
make compile on linux...needed string.h
optimize hashtable so we don't always build new ones for cyclegraph check
remove hashtable functionality
replace malloc/calloc/free with snapshot_{malloc/calloc/free} We need to explicitly declare when we are requesting snapshotting memory, and we need to avoid using malloc, etc., directly. For now, this has no functional change, as the 'snapshot_*' functions just call the stdlib functions, but soon we may switch allocators to use a private heap.
hashtable: document get_safe_ptr()
hashtable: rename ensureptr() to get_safe_ptr() ensureptr() is kind of vague. This rename -- along with some better description -- will help clarify what this function does.
hashtable: bugfix - increment size only when new bins are linked In both put() and ensureptr(), the 'size' counter should not be incremented until we decide if we're adding a new bin or not. When incremented improperly, 'size' ended up out of sync with the hash table; it reported a size much larger than the actual table.
hashtable: some refactoring, signed-ness Since 'capacity' is unsigned, so should the index that compares with it. The (duplicated) compare/resize code can be a bit shorter and (IMO) easier to read.
hashtable: add some documentation
more reformatting/indentation
fixup whitespace