Hello community,

here is the log from the commit of package chck for openSUSE:Factory checked in 
at 2017-02-16 17:05:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/chck (Old)
 and      /work/SRC/openSUSE:Factory/.chck.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "chck"

Changes:
--------
--- /work/SRC/openSUSE:Factory/chck/chck.changes        2016-05-08 
10:46:16.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.chck.new/chck.changes   2017-02-16 
17:05:45.861790820 +0100
@@ -1,0 +2,5 @@
+Wed Feb  8 19:58:27 UTC 2017 - [email protected]
+
+- update to 0.0.20161208
+
+-------------------------------------------------------------------

Old:
----
  chck-0.0.20160429.tar.xz

New:
----
  chck-0.0.20161208.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ chck.spec ++++++
--- /var/tmp/diff_new_pack.pLq3uk/_old  2017-02-16 17:05:46.233738192 +0100
+++ /var/tmp/diff_new_pack.pLq3uk/_new  2017-02-16 17:05:46.237737626 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           chck
-Version:        0.0.20160429
+Version:        0.0.20161208
 Release:        0
 Summary:        C utilities collection library
 License:        MIT

++++++ chck-0.0.20160429.tar.xz -> chck-0.0.20161208.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/atlas/atlas.h 
new/chck-0.0.20161208/chck/atlas/atlas.h
--- old/chck-0.0.20160429/chck/atlas/atlas.h    2016-05-05 14:21:04.000000000 
+0200
+++ new/chck-0.0.20161208/chck/atlas/atlas.h    2016-12-08 16:14:10.000000000 
+0100
@@ -42,13 +42,13 @@
    uint32_t total_area;
 };
 
-CHCK_NONULL bool chck_atlas(struct chck_atlas *atlas);
+bool chck_atlas(struct chck_atlas *atlas);
 void chck_atlas_release(struct chck_atlas *atlas);
-CHCK_NONULL uint32_t chck_atlas_push(struct chck_atlas *atlas, uint32_t width, 
uint32_t height);
-CHCK_NONULL uint32_t chck_atlas_pop(struct chck_atlas *atlas);
-CHCK_NONULLV(1) const struct chck_atlas_texture* chck_atlas_get(const struct 
chck_atlas *atlas, uint32_t index, struct chck_atlas_rect *out_transformed);
+uint32_t chck_atlas_push(struct chck_atlas *atlas, uint32_t width, uint32_t 
height);
+uint32_t chck_atlas_pop(struct chck_atlas *atlas);
+const struct chck_atlas_texture* chck_atlas_get(const struct chck_atlas 
*atlas, uint32_t index, struct chck_atlas_rect *out_transformed);
 
 // returns total unused area
-CHCK_NONULLV(1) uint32_t chck_atlas_pack(struct chck_atlas *atlas, bool 
force_pot, bool one_px_border, uint32_t *out_w, uint32_t *out_h);
+uint32_t chck_atlas_pack(struct chck_atlas *atlas, bool force_pot, bool 
one_px_border, uint32_t *out_w, uint32_t *out_h);
 
 #endif /* __chck_atlas_h__ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/buffer/buffer.c 
new/chck-0.0.20161208/chck/buffer/buffer.c
--- old/chck-0.0.20160429/chck/buffer/buffer.c  2016-05-05 14:21:04.000000000 
+0200
+++ new/chck-0.0.20161208/chck/buffer/buffer.c  2016-12-08 16:14:10.000000000 
+0100
@@ -10,7 +10,18 @@
 #  define HAS_ZLIB 0
 #endif
 
-static inline bool
+struct chck_variant {
+   union {
+      uint64_t u64;
+      uint32_t u32;
+      uint16_t u16;
+      uint8_t u8;
+      uint8_t b[sizeof(uint64_t)];
+   };
+   enum chck_bits bits;
+};
+
+CHCK_CONST static inline bool
 valid_bits(enum chck_bits bits)
 {
    return (bits == CHCK_BUFFER_B8  ||
@@ -19,6 +30,46 @@
            bits == CHCK_BUFFER_B64);
 }
 
+CHCK_CONST static inline enum chck_bits
+smallest_bits_for_value(uintmax_t v)
+{
+   static const struct {
+      uintmax_t off;
+      enum chck_bits bits;
+   } map[3] = {
+      { ~(uint32_t)0, CHCK_BUFFER_B64 },
+      { ~(uint16_t)0, CHCK_BUFFER_B32 },
+      { ~(uint8_t)0, CHCK_BUFFER_B16 },
+   };
+
+   for (size_t i = 0; i < sizeof(map) / sizeof(map[0]); ++i) {
+      if (v <= map[i].off)
+         continue;
+
+      return map[i].bits;
+   }
+
+   return CHCK_BUFFER_B8;
+}
+
+CHCK_PURE static inline uintmax_t
+variant_get_value(struct chck_variant v)
+{
+   switch (v.bits) {
+      case CHCK_BUFFER_B8:
+         return v.u8;
+      case CHCK_BUFFER_B16:
+         return v.u16;
+      case CHCK_BUFFER_B32:
+         return v.u32;
+      case CHCK_BUFFER_B64:
+         return v.u64;
+   }
+
+   assert(0 && "should not happen");
+   return 0;
+}
+
 void
 chck_buffer_flush(struct chck_buffer *buf)
 {
@@ -257,10 +308,12 @@
    if (out_len)
       *out_len = 0;
 
-   size_t len = 0;
-   if (unlikely(!chck_buffer_read_int(&len, bits, buf)))
+   struct chck_variant v = { .bits = bits };
+   if (unlikely(!chck_buffer_read_int(v.b, bits, buf)))
       return false;
 
+   const size_t len = variant_get_value(v);
+
    if (out_len)
       *out_len = len;
 
@@ -288,7 +341,7 @@
       *len = 0;
 
    uint8_t bits;
-   if (unlikely(!chck_buffer_read_int(&bits, sizeof(uint8_t), buf)))
+   if (unlikely(!chck_buffer_read_int(&bits, sizeof(bits), buf)))
       return false;
 
    return likely(chck_buffer_read_string_of_type(str, len, bits, buf));
@@ -344,11 +397,24 @@
 {
    assert(buf);
 
-   if (unlikely(!chck_buffer_write_int(&len, bits, buf)))
-      return false;
+   bool ret = false;
+   switch (bits) {
+      case CHCK_BUFFER_B8:
+         ret = chck_buffer_write_int((uint8_t[]){len}, bits, buf);
+         break;
+      case CHCK_BUFFER_B16:
+         ret = chck_buffer_write_int((uint16_t[]){len}, bits, buf);
+         break;
+      case CHCK_BUFFER_B32:
+         ret = chck_buffer_write_int((uint32_t[]){len}, bits, buf);
+         break;
+      case CHCK_BUFFER_B64:
+         ret = chck_buffer_write_int((uint64_t[]){len}, bits, buf);
+         break;
+   }
 
-   if (len <= 0)
-      return true;
+   if (unlikely(!ret))
+      return false;
 
    return likely(chck_buffer_write(str, 1, len, buf) == len);
 }
@@ -357,9 +423,9 @@
 chck_buffer_write_string(const char *str, size_t len, struct chck_buffer *buf)
 {
    assert(buf);
-   const enum chck_bits bits = (len > 0xffff ? sizeof(uint32_t) : (len > 0xff 
? sizeof(uint16_t) : sizeof(uint8_t)));
 
-   if (unlikely(!chck_buffer_write_int(&bits, sizeof(uint8_t), buf)))
+   const uint8_t bits = smallest_bits_for_value(len);
+   if (unlikely(!chck_buffer_write_int(&bits, sizeof(bits), buf)))
       return false;
 
    return likely(chck_buffer_write_string_of_type(str, len, bits, buf));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/buffer/buffer.h 
new/chck-0.0.20161208/chck/buffer/buffer.h
--- old/chck-0.0.20160429/chck/buffer/buffer.h  2016-05-05 14:21:04.000000000 
+0200
+++ new/chck-0.0.20161208/chck/buffer/buffer.h  2016-12-08 16:14:10.000000000 
+0100
@@ -32,44 +32,44 @@
    bool copied;
 };
 
-CHCK_NONULL static inline bool
+static inline bool
 chck_buffer_native_endianess(const struct chck_buffer *buf)
 {
    return (chck_endianess() == buf->endianess);
 }
 
 void chck_buffer_release(struct chck_buffer *buf);
-CHCK_NONULL void chck_buffer_flush(struct chck_buffer *buf);
-CHCK_NONULLV(1) bool chck_buffer_from_pointer(struct chck_buffer *buf, void 
*ptr, size_t size, enum chck_endianess endianess);
-CHCK_NONULL bool chck_buffer(struct chck_buffer *buf, size_t size, enum 
chck_endianess endianess);
-CHCK_NONULLV(1) void chck_buffer_set_pointer(struct chck_buffer *buf, void 
*ptr, size_t size, enum chck_endianess endianess);
-
-CHCK_NONULLV(4) size_t chck_buffer_fill(const void *src, size_t size, size_t 
memb, struct chck_buffer *buf);
-CHCK_NONULL size_t chck_buffer_fill_from_file(FILE *src, size_t size, size_t 
memb, struct chck_buffer *buf);
-CHCK_NONULL size_t chck_buffer_fill_from_fd(int fd, size_t size, size_t memb, 
struct chck_buffer *buf);
-
-CHCK_NONULLV(4) size_t chck_buffer_write(const void *src, size_t size, size_t 
nmemb, struct chck_buffer *buf);
-CHCK_NONULL size_t chck_buffer_write_from_file(FILE *src, size_t size, size_t 
nmemb, struct chck_buffer *buf);
-CHCK_NONULL size_t chck_buffer_write_from_fd(int fd, size_t size, size_t 
nmemb, struct chck_buffer *buf);
-
-CHCK_NONULL size_t chck_buffer_read(void *dst, size_t size, size_t memb, 
struct chck_buffer *buf);
-CHCK_NONULL bool chck_buffer_read_int(void *i, enum chck_bits bits, struct 
chck_buffer *buf);
-CHCK_NONULLV(1, 3) bool chck_buffer_read_string(char **str, size_t *len, 
struct chck_buffer *buf);
-CHCK_NONULLV(1, 4) bool chck_buffer_read_string_of_type(char **str, size_t 
*len, enum chck_bits bits, struct chck_buffer *buf);
-
-CHCK_NONULL bool chck_buffer_write_int(const void *i, enum chck_bits bits, 
struct chck_buffer *buf);
-CHCK_NONULLV(3) bool chck_buffer_write_string(const char *str, size_t len, 
struct chck_buffer *buf);
-CHCK_NONULLV(4) bool chck_buffer_write_string_of_type(const char *str, size_t 
len, enum chck_bits bits, struct chck_buffer *buf);
+void chck_buffer_flush(struct chck_buffer *buf);
+bool chck_buffer_from_pointer(struct chck_buffer *buf, void *ptr, size_t size, 
enum chck_endianess endianess);
+bool chck_buffer(struct chck_buffer *buf, size_t size, enum chck_endianess 
endianess);
+void chck_buffer_set_pointer(struct chck_buffer *buf, void *ptr, size_t size, 
enum chck_endianess endianess);
+
+size_t chck_buffer_fill(const void *src, size_t size, size_t memb, struct 
chck_buffer *buf);
+size_t chck_buffer_fill_from_file(FILE *src, size_t size, size_t memb, struct 
chck_buffer *buf);
+size_t chck_buffer_fill_from_fd(int fd, size_t size, size_t memb, struct 
chck_buffer *buf);
+
+size_t chck_buffer_write(const void *src, size_t size, size_t nmemb, struct 
chck_buffer *buf);
+size_t chck_buffer_write_from_file(FILE *src, size_t size, size_t nmemb, 
struct chck_buffer *buf);
+size_t chck_buffer_write_from_fd(int fd, size_t size, size_t nmemb, struct 
chck_buffer *buf);
+
+size_t chck_buffer_read(void *dst, size_t size, size_t memb, struct 
chck_buffer *buf);
+bool chck_buffer_read_int(void *i, enum chck_bits bits, struct chck_buffer 
*buf);
+bool chck_buffer_read_string(char **str, size_t *len, struct chck_buffer *buf);
+bool chck_buffer_read_string_of_type(char **str, size_t *len, enum chck_bits 
bits, struct chck_buffer *buf);
+
+bool chck_buffer_write_int(const void *i, enum chck_bits bits, struct 
chck_buffer *buf);
+bool chck_buffer_write_string(const char *str, size_t len, struct chck_buffer 
*buf);
+bool chck_buffer_write_string_of_type(const char *str, size_t len, enum 
chck_bits bits, struct chck_buffer *buf);
 
-CHCK_NONULL CHCK_FORMAT(printf, 2, 3) size_t chck_buffer_write_format(struct 
chck_buffer *buf, const char *fmt, ...);
-CHCK_NONULL size_t chck_buffer_write_varg(struct chck_buffer *buf, const char 
*fmt, va_list args);
+CHCK_FORMAT(printf, 2, 3) size_t chck_buffer_write_format(struct chck_buffer 
*buf, const char *fmt, ...);
+size_t chck_buffer_write_varg(struct chck_buffer *buf, const char *fmt, 
va_list args);
 
-CHCK_NONULL ptrdiff_t chck_buffer_seek(struct chck_buffer *buf, long offset, 
int whence);
-CHCK_NONULL bool chck_buffer_resize(struct chck_buffer *buf, size_t size);
+ptrdiff_t chck_buffer_seek(struct chck_buffer *buf, long offset, int whence);
+bool chck_buffer_resize(struct chck_buffer *buf, size_t size);
 
 /* -DHAS_ZLIB=1 -lz */
 CHCK_CONST bool chck_buffer_has_zlib(void);
-CHCK_NONULL bool chck_buffer_compress_zlib(struct chck_buffer *buf);
-CHCK_NONULL bool chck_buffer_decompress_zlib(struct chck_buffer *buf);
+bool chck_buffer_compress_zlib(struct chck_buffer *buf);
+bool chck_buffer_decompress_zlib(struct chck_buffer *buf);
 
 #endif /* __chck_buffer__ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/buffer/endianess.h 
new/chck-0.0.20161208/chck/buffer/endianess.h
--- old/chck-0.0.20160429/chck/buffer/endianess.h       2016-05-05 
14:21:04.000000000 +0200
+++ new/chck-0.0.20161208/chck/buffer/endianess.h       2016-12-08 
16:14:10.000000000 +0100
@@ -56,7 +56,7 @@
 #  define chck_endianess() CHCK_ENDIANESS_LITTLE
 #else
 // runtime endianess check
-static inline enum
+CHCK_CONST static inline enum
 chck_endianess chck_endianess(void)
 {
    union {
@@ -67,16 +67,21 @@
 };
 #endif
 
-CHCK_NONULL static inline void
+static inline void
 chck_bswap_generic(void *p, size_t size)
 {
-   size_t s;
-   uint8_t b[size];
+   if (size <= sizeof(uint8_t))
+      return;
+
+   assert(size <= sizeof(intmax_t));
+   uint8_t b[sizeof(intmax_t)];
    memcpy(b, p, size);
-   for (s = 0; s < size; ++s) memset((uint8_t*)p + s, b[size - s - 1], 1);
+
+   for (size_t s = 0; s < size; ++s)
+      memset((uint8_t*)p + s, b[size - s - 1], 1);
 }
 
-CHCK_NONULL static inline void
+static inline void
 chck_bswap_single(void *p, size_t size)
 {
 #if HAS_BYTESWAP
@@ -100,12 +105,12 @@
 #endif
 }
 
-CHCK_NONULL static inline void
+static inline void
 chck_bswap(void *v, size_t size, size_t memb)
 {
    assert(v);
 
-   for (uint8_t *p = v; p < (uint8_t*)v + (memb * size); p += size)
+   for (uint8_t *p = v; size > sizeof(uint8_t) && p < (uint8_t*)v + (memb * 
size); p += size)
       chck_bswap_single(p, size);
 }
 
@@ -113,10 +118,10 @@
 
 #if HAS_BYTESWAP
 #  define generic_swap(T, n) \
-   CHCK_NONULL static inline T chck_bswap##n(T v) { return bswap##n(v); }
+   static inline T chck_bswap##n(T v) { return bswap##n(v); }
 #else
 #  define generic_swap(T, n) \
-   CHCK_NONULL static inline T chck_bswap##n(T v) { chck_bswap_generic(&v, 
sizeof(v)); return v; }
+   static inline T chck_bswap##n(T v) { chck_bswap_generic(&v, sizeof(v)); 
return v; }
 #endif
 
 generic_swap(uint16_t, 16)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/dl/dl.h 
new/chck-0.0.20161208/chck/dl/dl.h
--- old/chck-0.0.20160429/chck/dl/dl.h  2016-05-05 14:21:04.000000000 +0200
+++ new/chck-0.0.20161208/chck/dl/dl.h  2016-12-08 16:14:10.000000000 +0100
@@ -3,8 +3,8 @@
 
 #include <chck/macros.h>
 
-CHCK_NONULLV(1) void* chck_dl_load(const char *file, const char **out_error);
-CHCK_NONULLV(1,2) void* chck_dl_load_symbol(void *handle, const char *name, 
const char **out_error);
-CHCK_NONULL void chck_dl_unload(void *handle);
+void* chck_dl_load(const char *file, const char **out_error);
+void* chck_dl_load_symbol(void *handle, const char *name, const char 
**out_error);
+void chck_dl_unload(void *handle);
 
 #endif /* __chck_cdl__ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/fs/fs.c 
new/chck-0.0.20161208/chck/fs/fs.c
--- old/chck-0.0.20160429/chck/fs/fs.c  2016-05-05 14:21:04.000000000 +0200
+++ new/chck-0.0.20161208/chck/fs/fs.c  2016-12-08 16:14:10.000000000 +0100
@@ -14,7 +14,7 @@
 #  include <mach-o/dyld.h>
 #endif
 
-#if defined(BSD)
+#if defined(BSD) || defined(__FreeBSD__)
 #  include <sys/param.h>
 #  include <sys/sysctl.h>
 #endif
@@ -121,7 +121,7 @@
 #elif defined(_WIN32) || defined(_WIN64)
    if (_pgmptr && !(exepath = ccopy(_pgmptr))) return NULL;
    if (exepath) return exepath;
-#elif defined(BSD) /* works on all BSD's? */
+#elif defined(BSD) || defined(__FreeBSD__) /* works on all BSD's? */
    int mib[4];
    mib[0] = CTL_KERN;
    mib[1] = KERN_PROC;
@@ -140,7 +140,7 @@
    path = "/proc/self/exe";
 #elif defined(__NetBSD__)
    path = "/proc/curproc/exe";
-#elif defined(BSD)
+#elif defined(BSD) || defined(__FreeBSD__)
    path = "/proc/curproc/file";
 #elif defined(__sun)
    path = "/proc/self/path/a.out";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/fs/fs.h 
new/chck-0.0.20161208/chck/fs/fs.h
--- old/chck-0.0.20160429/chck/fs/fs.h  2016-05-05 14:21:04.000000000 +0200
+++ new/chck-0.0.20161208/chck/fs/fs.h  2016-12-08 16:14:10.000000000 +0100
@@ -7,7 +7,7 @@
 #include <stdio.h>
 #include <assert.h>
 
-CHCK_PURE CHCK_NONULL static inline const char*
+CHCK_PURE static inline const char*
 chck_basename(const char *path)
 {
    assert(path);
@@ -15,7 +15,7 @@
    return (base ? base + 1 : path);
 }
 
-CHCK_NONULL static inline bool
+static inline bool
 chck_filename_is_safe(const char *name)
 {
    if (!name || !*name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/lut/lut.h 
new/chck-0.0.20161208/chck/lut/lut.h
--- old/chck-0.0.20160429/chck/lut/lut.h        2016-05-05 14:21:04.000000000 
+0200
+++ new/chck-0.0.20161208/chck/lut/lut.h        2016-12-08 16:14:10.000000000 
+0100
@@ -53,7 +53,7 @@
 }
 
 // default simple string hash
-CHCK_NONULL CHCK_CONST static inline uint32_t
+CHCK_CONST static inline uint32_t
 chck_default_str_hash(const char *str, size_t len)
 {
    (void)len;
@@ -78,16 +78,16 @@
 #define chck_lut_for_each(lut, pos) \
    for (size_t _I = 0; (pos = chck_lut_iter(lut, &_I));)
 
-CHCK_NONULL bool chck_lut(struct chck_lut *lut, int set, size_t count, size_t 
member);
-CHCK_NONULL void chck_lut_uint_algorithm(struct chck_lut *lut, uint32_t 
(*hashuint)(uint32_t uint));
-CHCK_NONULL void chck_lut_str_algorithm(struct chck_lut *lut, uint32_t 
(*hashstr)(const char *str, size_t len));
+bool chck_lut(struct chck_lut *lut, int set, size_t count, size_t member);
+void chck_lut_uint_algorithm(struct chck_lut *lut, uint32_t 
(*hashuint)(uint32_t uint));
+void chck_lut_str_algorithm(struct chck_lut *lut, uint32_t (*hashstr)(const 
char *str, size_t len));
 void chck_lut_release(struct chck_lut *lut);
-CHCK_NONULL void chck_lut_flush(struct chck_lut *lut);
-CHCK_NONULLV(1) bool chck_lut_set(struct chck_lut *lut, uint32_t lookup, const 
void *data);
-CHCK_NONULL void* chck_lut_get(struct chck_lut *lut, uint32_t lookup);
-CHCK_NONULLV(1, 2) bool chck_lut_str_set(struct chck_lut *lut, const char 
*str, size_t len, const void *data);
-CHCK_NONULL void* chck_lut_str_get(struct chck_lut *lut, const char *str, 
size_t len);
-CHCK_NONULL void* chck_lut_iter(struct chck_lut *lut, size_t *iter);
+void chck_lut_flush(struct chck_lut *lut);
+bool chck_lut_set(struct chck_lut *lut, uint32_t lookup, const void *data);
+void* chck_lut_get(struct chck_lut *lut, uint32_t lookup);
+bool chck_lut_str_set(struct chck_lut *lut, const char *str, size_t len, const 
void *data);
+void* chck_lut_str_get(struct chck_lut *lut, const char *str, size_t len);
+void* chck_lut_iter(struct chck_lut *lut, size_t *iter);
 
 /**
  * Hash tables are wrappers around LUTs that does not have collisions.
@@ -104,16 +104,16 @@
 #define chck_hash_table_for_each(table, pos) \
    for (struct chck_hash_table_iterator _I = { table, 0, NULL, 0 }; (pos = 
chck_hash_table_iter(&_I));)
 
-CHCK_NONULL bool chck_hash_table(struct chck_hash_table *table, int set, 
size_t count, size_t member);
-CHCK_NONULL void chck_hash_table_uint_algorithm(struct chck_hash_table *table, 
uint32_t (*hashuint)(uint32_t uint));
-CHCK_NONULL void chck_hash_table_str_algorithm(struct chck_hash_table *table, 
uint32_t (*hashstr)(const char *str, size_t len));
+bool chck_hash_table(struct chck_hash_table *table, int set, size_t count, 
size_t member);
+void chck_hash_table_uint_algorithm(struct chck_hash_table *table, uint32_t 
(*hashuint)(uint32_t uint));
+void chck_hash_table_str_algorithm(struct chck_hash_table *table, uint32_t 
(*hashstr)(const char *str, size_t len));
 void chck_hash_table_release(struct chck_hash_table *table);
-CHCK_NONULL void chck_hash_table_flush(struct chck_hash_table *table);
-CHCK_NONULL uint32_t chck_hash_table_collisions(struct chck_hash_table *table);
-CHCK_NONULLV(1) bool chck_hash_table_set(struct chck_hash_table *table, 
uint32_t key, const void *data);
-CHCK_NONULLV(1) void* chck_hash_table_get(struct chck_hash_table *table, 
uint32_t key);
-CHCK_NONULLV(1, 2) bool chck_hash_table_str_set(struct chck_hash_table *table, 
const char *str, size_t len, const void *data);
-CHCK_NONULLV(1, 2) void* chck_hash_table_str_get(struct chck_hash_table 
*table, const char *str, size_t len);
-CHCK_NONULL void* chck_hash_table_iter(struct chck_hash_table_iterator *iter);
+void chck_hash_table_flush(struct chck_hash_table *table);
+uint32_t chck_hash_table_collisions(struct chck_hash_table *table);
+bool chck_hash_table_set(struct chck_hash_table *table, uint32_t key, const 
void *data);
+void* chck_hash_table_get(struct chck_hash_table *table, uint32_t key);
+bool chck_hash_table_str_set(struct chck_hash_table *table, const char *str, 
size_t len, const void *data);
+void* chck_hash_table_str_get(struct chck_hash_table *table, const char *str, 
size_t len);
+void* chck_hash_table_iter(struct chck_hash_table_iterator *iter);
 
 #endif /* __chck_lut__ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/macros.h 
new/chck-0.0.20161208/chck/macros.h
--- old/chck-0.0.20160429/chck/macros.h 2016-05-05 14:21:04.000000000 +0200
+++ new/chck-0.0.20161208/chck/macros.h 2016-12-08 16:14:10.000000000 +0100
@@ -7,8 +7,6 @@
 #     define unlikely(x) __builtin_expect(!!(x), 0)
 #  endif
 #  define CHCK_FORMAT(f, x, y) __attribute__((format(f, x, y)))
-#  define CHCK_NONULL __attribute__((nonnull))
-#  define CHCK_NONULLV(...) __attribute__((nonnull(__VA_ARGS__)))
 #  define CHCK_CONST __attribute__((const))
 #  define CHCK_PURE __attribute__((pure))
 #  define CHCK_MALLOC __attribute__((malloc))
@@ -18,8 +16,6 @@
 #     define unlikely(x) !!(x)
 #  endif
 #  define CHCK_FORMAT(f, x, y)
-#  define CHCK_NONULL
-#  define CHCK_NONULLV
 #  define CHCK_CONST
 #  define CHCK_PURE
 #  define CHCK_MALLOC
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/math/test.c 
new/chck-0.0.20161208/chck/math/test.c
--- old/chck-0.0.20160429/chck/math/test.c      2016-05-05 14:21:04.000000000 
+0200
+++ new/chck-0.0.20161208/chck/math/test.c      2016-12-08 16:14:10.000000000 
+0100
@@ -8,12 +8,12 @@
 
 int main(void)
 {
-   assert(chck_equalld(10.0, 10.000000000001l, 1000000.0l));
-   assert(!chck_equalld(10.0, 10.000000000001l, 1.0l));
-   assert(chck_equal(10.0, 10.000000000001, 1000.0));
-   assert(!chck_equal(10.0, 10.000000000001, 1.0));
-   assert(chck_equalf(10.0f, 10.00001f, 10.0f));
-   assert(!chck_equalf(10.0f, 10.00001f, 1.0f));
+   assert(chck_equalld(LDBL_MIN, LDBL_MIN + LDBL_MIN, LDBL_DIG / 
LDBL_EPSILON));
+   assert(!chck_equalld(LDBL_MIN, LDBL_MIN + LDBL_MIN, 1.0l));
+   assert(chck_equal(DBL_MIN, DBL_MIN + DBL_MIN, DBL_DIG / DBL_EPSILON));
+   assert(!chck_equal(DBL_MIN, DBL_MIN + DBL_MIN, 1.0));
+   assert(chck_equalf(FLT_MIN, FLT_MIN + FLT_MIN, FLT_DIG / FLT_EPSILON));
+   assert(!chck_equalf(FLT_MIN, FLT_MIN + FLT_MIN, 1.0f));
 
    for (uint32_t i = 0xFFFF; i < 0xFFFFFF; ++i) {
       assert(chck_minu32(i, i - 20) == i - 20);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/overflow/overflow.h 
new/chck-0.0.20161208/chck/overflow/overflow.h
--- old/chck-0.0.20160429/chck/overflow/overflow.h      2016-05-05 
14:21:04.000000000 +0200
+++ new/chck-0.0.20161208/chck/overflow/overflow.h      2016-12-08 
16:14:10.000000000 +0100
@@ -38,9 +38,9 @@
 
 // T = type name, n = function suffix, s = is type signed?
 #define decl_generics_for_type(T, n, s) \
-   of_attr CHCK_NONULL static inline bool chck_add_of##n(T a, T b, T *r) { 
assert((!s || b >= 0) && r); return add_of(a, b, r); } \
-   of_attr CHCK_NONULL static inline bool chck_sub_of##n(T a, T b, T *r) { 
assert((!s || b >= 0) && r); return sub_of(a, b, r); } \
-   of_attr CHCK_NONULL static inline bool chck_mul_of##n(T a, T b, T *r) { 
assert(r); return mul_of(a, b, r); }
+   of_attr static inline bool chck_add_of##n(T a, T b, T *r) { assert((!s || b 
>= 0) && r); return add_of(a, b, r); } \
+   of_attr static inline bool chck_sub_of##n(T a, T b, T *r) { assert((!s || b 
>= 0) && r); return sub_of(a, b, r); } \
+   of_attr static inline bool chck_mul_of##n(T a, T b, T *r) { assert(r); 
return mul_of(a, b, r); }
 
 // UT = unsigned type, un = unsigned function suffix
 // T = signed type, n = signed function suffix
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/pool/pool.c 
new/chck-0.0.20161208/chck/pool/pool.c
--- old/chck-0.0.20160429/chck/pool/pool.c      2016-05-05 14:21:04.000000000 
+0200
+++ new/chck-0.0.20161208/chck/pool/pool.c      2016-12-08 16:14:10.000000000 
+0100
@@ -545,109 +545,3 @@
    assert(pool);
    return pool_buffer_to_c_array(&pool->items, out_memb);
 }
-
-bool
-chck_ring_pool(struct chck_ring_pool *pool, size_t grow, size_t capacity, 
size_t member_size)
-{
-   assert(pool && member_size > 0);
-
-   if (unlikely(!member_size))
-      return false;
-
-   *pool = (struct chck_ring_pool){0};
-   return pool_buffer(&pool->items, grow, capacity, member_size);
-}
-
-bool
-chck_ring_pool_from_c_array(struct chck_ring_pool *pool, const void *items, 
size_t memb, size_t grow, size_t member_size)
-{
-   return (!chck_ring_pool(pool, grow, 0, member_size) && 
!chck_ring_pool_set_c_array(pool, items, memb));
-}
-
-void
-chck_ring_pool_release(struct chck_ring_pool *pool)
-{
-   if (!pool)
-      return;
-
-   pool_buffer_release(&pool->items);
-   free(pool->popped);
-   pool->popped = NULL;
-}
-
-void
-chck_ring_pool_flush(struct chck_ring_pool *pool)
-{
-   assert(pool);
-   pool_buffer_flush(&pool->items, true);
-   free(pool->popped);
-   pool->popped = NULL;
-}
-
-void*
-chck_ring_pool_push_front(struct chck_ring_pool *pool, const void *data)
-{
-   assert(pool);
-   return pool_buffer_add_move(&pool->items, data, 0, NULL);
-}
-
-void*
-chck_ring_pool_push_back(struct chck_ring_pool *pool, const void *data)
-{
-   assert(pool);
-   return pool_buffer_add(&pool->items, data, pool->items.used, NULL);
-}
-
-void*
-chck_ring_pool_pop_first(struct chck_ring_pool *pool)
-{
-   assert(pool);
-
-   if (unlikely(pool->items.count <= 0))
-      return NULL;
-
-   if (!pool->popped && !(pool->popped = malloc(pool->items.member)))
-      return NULL;
-
-   memcpy(pool->popped, pool->items.buffer, pool->items.member);
-   pool_buffer_remove_move(&pool->items, 0);
-   return pool->popped;
-}
-
-void*
-chck_ring_pool_pop_last(struct chck_ring_pool *pool)
-{
-   assert(pool);
-
-   if (unlikely(pool->items.count <= 0))
-      return NULL;
-
-   const void *ptr = pool_buffer_get(&pool->items, pool->items.count - 1);
-   if (!ptr || (!pool->popped && !(pool->popped = malloc(pool->items.member))))
-      return NULL;
-
-   memcpy(pool->popped, ptr, pool->items.member);
-   pool_buffer_remove_move(&pool->items, pool->items.count - 1);
-   return pool->popped;
-}
-
-void*
-chck_ring_pool_iter(const struct chck_ring_pool *pool, size_t *iter, bool 
reverse)
-{
-   assert(pool && iter);
-   return pool_buffer_iter(&pool->items, iter, reverse);
-}
-
-bool
-chck_ring_pool_set_c_array(struct chck_ring_pool *pool, const void *items, 
size_t memb)
-{
-   assert(pool);
-   return pool_buffer_set_c_array(&pool->items, items, memb);
-}
-
-void*
-chck_ring_pool_to_c_array(struct chck_ring_pool *pool, size_t *out_memb)
-{
-   assert(pool);
-   return pool_buffer_to_c_array(&pool->items, out_memb);
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/pool/pool.h 
new/chck-0.0.20161208/chck/pool/pool.h
--- old/chck-0.0.20160429/chck/pool/pool.h      2016-05-05 14:21:04.000000000 
+0200
+++ new/chck-0.0.20161208/chck/pool/pool.h      2016-12-08 16:14:10.000000000 
+0100
@@ -59,18 +59,18 @@
 #define chck_pool_for_each_reverse(pool, pos) \
    for (size_t _I = (pool)->items.count - 1; (pos = chck_pool_iter(pool, &_I, 
true));)
 
-CHCK_NONULL bool chck_pool(struct chck_pool *pool, size_t grow, size_t 
capacity, size_t member_size);
-CHCK_NONULL bool chck_pool_from_c_array(struct chck_pool *pool, const void 
*items, size_t memb, size_t grow, size_t member_size);
+bool chck_pool(struct chck_pool *pool, size_t grow, size_t capacity, size_t 
member_size);
+bool chck_pool_from_c_array(struct chck_pool *pool, const void *items, size_t 
memb, size_t grow, size_t member_size);
 void chck_pool_release(struct chck_pool *pool);
-CHCK_NONULL void chck_pool_flush(struct chck_pool *pool);
-CHCK_NONULL void chck_pool_print(const struct chck_pool *pool, FILE *out);
-CHCK_PURE CHCK_NONULL void* chck_pool_get(const struct chck_pool *pool, size_t 
index);
-CHCK_PURE CHCK_NONULL void* chck_pool_get_last(const struct chck_pool *pool);
-CHCK_NONULLV(1) void* chck_pool_add(struct chck_pool *pool, const void *data, 
size_t *out_index);
-CHCK_NONULL void chck_pool_remove(struct chck_pool *pool, size_t index);
-CHCK_NONULL void* chck_pool_iter(const struct chck_pool *pool, size_t *iter, 
bool reverse);
-CHCK_NONULLV(1) bool chck_pool_set_c_array(struct chck_pool *pool, const void 
*items, size_t memb); /* struct item *c_array; */
-CHCK_NONULLV(1) void* chck_pool_to_c_array(struct chck_pool *pool, size_t 
*memb); /* struct item *c_array; (contains holes) */
+void chck_pool_flush(struct chck_pool *pool);
+void chck_pool_print(const struct chck_pool *pool, FILE *out);
+CHCK_PURE void* chck_pool_get(const struct chck_pool *pool, size_t index);
+CHCK_PURE void* chck_pool_get_last(const struct chck_pool *pool);
+void* chck_pool_add(struct chck_pool *pool, const void *data, size_t 
*out_index);
+void chck_pool_remove(struct chck_pool *pool, size_t index);
+void* chck_pool_iter(const struct chck_pool *pool, size_t *iter, bool reverse);
+bool chck_pool_set_c_array(struct chck_pool *pool, const void *items, size_t 
memb); /* struct item *c_array; */
+void* chck_pool_to_c_array(struct chck_pool *pool, size_t *memb); /* struct 
item *c_array; (contains holes) */
 
 /**
  * IterPools don't have holes in buffer.
@@ -92,49 +92,19 @@
 #define chck_iter_pool_for_each_reverse(pool, pos) \
    for (size_t _I = (pool)->items.count - 1; (pos = chck_iter_pool_iter(pool, 
&_I, true));)
 
-CHCK_NONULL bool chck_iter_pool(struct chck_iter_pool *pool, size_t grow, 
size_t capacity, size_t member_size);
-CHCK_NONULL bool chck_iter_pool_from_c_array(struct chck_iter_pool *pool, 
const void *items, size_t memb, size_t grow_step, size_t member_size);
+bool chck_iter_pool(struct chck_iter_pool *pool, size_t grow, size_t capacity, 
size_t member_size);
+bool chck_iter_pool_from_c_array(struct chck_iter_pool *pool, const void 
*items, size_t memb, size_t grow_step, size_t member_size);
 void chck_iter_pool_release(struct chck_iter_pool *pool);
-CHCK_NONULL void chck_iter_pool_flush(struct chck_iter_pool *pool);
-CHCK_NONULL void chck_iter_pool_empty(struct chck_iter_pool *pool);
-CHCK_PURE CHCK_NONULL void* chck_iter_pool_get(const struct chck_iter_pool 
*pool, size_t index);
-CHCK_PURE CHCK_NONULL void* chck_iter_pool_get_last(const struct 
chck_iter_pool *pool);
-CHCK_NONULLV(1) void* chck_iter_pool_push_front(struct chck_iter_pool *pool, 
const void *data);
-CHCK_NONULLV(1) void* chck_iter_pool_push_back(struct chck_iter_pool *pool, 
const void *data);
-CHCK_NONULLV(1) void* chck_iter_pool_insert(struct chck_iter_pool *pool, 
size_t index, const void *data);
-CHCK_NONULL void chck_iter_pool_remove(struct chck_iter_pool *pool, size_t 
index);
-CHCK_NONULL void* chck_iter_pool_iter(const struct chck_iter_pool *pool, 
size_t *iter, bool reverse);
-CHCK_NONULLV(1) bool chck_iter_pool_set_c_array(struct chck_iter_pool *pool, 
const void *items, size_t memb); /* struct item *c_array; */
-CHCK_NONULLV(1) void* chck_iter_pool_to_c_array(struct chck_iter_pool *pool, 
size_t *memb); /* struct item *c_array; */
-
-/**
- * RingPools are circular pools.
- * You push items to them and the pool grows as needed.
- * You can push and pop to/from both sides.
- */
-
-#define chck_ring_pool_for_each_call(pool, function, ...) \
-{ void *_P; for (size_t _I = 0; (_P = chck_ring_pool_iter(pool, &_I, false));) 
function(_P, ##__VA_ARGS__); }
-
-#define chck_ring_pool_for_each_call_reverse(pool, function, ...) \
-{ void *_P; for (size_t _I = (pool)->items.count - 1; (_P = 
chck_ring_pool_iter(pool, &_I, true));) function(_P, ##__VA_ARGS__); }
-
-#define chck_ring_pool_for_each(pool, pos) \
-   for (size_t _I = 0; (pos = chck_ring_pool_iter(pool, &_I, false));)
-
-#define chck_ring_pool_for_each_reverse(pool, pos) \
-   for (size_t _I = (pool)->items.count - 1; (pos = chck_ring_pool_iter(pool, 
&_I, true));)
-
-CHCK_NONULL bool chck_ring_pool(struct chck_ring_pool *pool, size_t grow, 
size_t capacity, size_t member_size);
-CHCK_NONULL bool chck_ring_pool_from_c_array(struct chck_ring_pool *pool, 
const void *items, size_t memb, size_t growStep, size_t memberSize);
-void chck_ring_pool_release(struct chck_ring_pool *pool);
-CHCK_NONULL void chck_ring_pool_flush(struct chck_ring_pool *pool);
-CHCK_NONULLV(1) void* chck_ring_pool_push_front(struct chck_ring_pool *pool, 
const void *data);
-CHCK_NONULLV(1) void* chck_ring_pool_push_back(struct chck_ring_pool *pool, 
const void *data);
-CHCK_NONULL void* chck_ring_pool_pop_first(struct chck_ring_pool *pool);
-CHCK_NONULL void* chck_ring_pool_pop_last(struct chck_ring_pool *pool);
-CHCK_NONULL void* chck_ring_pool_iter(const struct chck_ring_pool *pool, 
size_t *iter, bool reverse);
-CHCK_NONULLV(1) bool chck_ring_pool_set_c_array(struct chck_ring_pool *pool, 
const void *items, size_t memb); /* struct item *c_array; */
-CHCK_NONULLV(1) void* chck_ring_pool_to_c_array(struct chck_ring_pool *pool, 
size_t *memb); /* struct item *c_array; */
+void chck_iter_pool_flush(struct chck_iter_pool *pool);
+void chck_iter_pool_empty(struct chck_iter_pool *pool);
+CHCK_PURE void* chck_iter_pool_get(const struct chck_iter_pool *pool, size_t 
index);
+CHCK_PURE void* chck_iter_pool_get_last(const struct chck_iter_pool *pool);
+void* chck_iter_pool_push_front(struct chck_iter_pool *pool, const void *data);
+void* chck_iter_pool_push_back(struct chck_iter_pool *pool, const void *data);
+void* chck_iter_pool_insert(struct chck_iter_pool *pool, size_t index, const 
void *data);
+void chck_iter_pool_remove(struct chck_iter_pool *pool, size_t index);
+void* chck_iter_pool_iter(const struct chck_iter_pool *pool, size_t *iter, 
bool reverse);
+bool chck_iter_pool_set_c_array(struct chck_iter_pool *pool, const void 
*items, size_t memb); /* struct item *c_array; */
+void* chck_iter_pool_to_c_array(struct chck_iter_pool *pool, size_t *memb); /* 
struct item *c_array; */
 
 #endif /* __chck_pool__ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/pool/test.c 
new/chck-0.0.20161208/chck/pool/test.c
--- old/chck-0.0.20160429/chck/pool/test.c      2016-05-05 14:21:04.000000000 
+0200
+++ new/chck-0.0.20161208/chck/pool/test.c      2016-12-08 16:14:10.000000000 
+0100
@@ -349,143 +349,6 @@
       assert(pool.items.used == 0);
    }
 
-   /* TEST: ring pool */
-   {
-      struct chck_ring_pool pool = {0};
-
-      {
-         size_t iter = 0;
-         assert(!chck_ring_pool_iter(&pool, &iter, false));
-         assert(!iter);
-         assert(!chck_ring_pool_iter(&pool, &iter, true));
-         assert(!iter);
-      }
-
-      assert(chck_ring_pool(&pool, 32, 0, sizeof(struct item)));
-      assert(pool.items.step == 32 * sizeof(struct item));
-      assert(pool.items.member == sizeof(struct item));
-      assert(pool.items.allocated == 0);
-      assert(pool.items.used == 0);
-      assert(pool.items.count == 0);
-      assert(!pool.items.buffer);
-
-      void *a, *b, *c;
-      a = chck_ring_pool_push_back(&pool, (&(struct item){1, NULL}));
-      b = chck_ring_pool_push_back(&pool, (&(struct item){2, NULL}));
-      c = chck_ring_pool_push_back(&pool, (&(struct item){3, NULL}));
-
-      assert(a != NULL && b != NULL && c != NULL);
-      assert(a != b && b != c && a != c);
-
-      {
-         size_t iter = 0;
-         struct item *current;
-         while ((current = chck_ring_pool_iter(&pool, &iter, false)))
-            assert(current != NULL);
-
-         assert(pool.items.count == 3);
-         assert(pool.items.used == 3 * sizeof(struct item));
-         assert(pool.items.allocated == 32 * sizeof(struct item));
-         assert(iter == 3);
-      }
-
-      assert(((struct item*)chck_ring_pool_pop_first(&pool))->a == 1);
-
-      {
-         size_t iter = 0;
-         struct item *current;
-         while ((current = chck_ring_pool_iter(&pool, &iter, true)))
-            assert(current != NULL);
-
-         assert(pool.items.count == 2);
-         assert(pool.items.used == 2 * sizeof(struct item));
-         assert(pool.items.allocated == 32 * sizeof(struct item));
-         assert(iter == (size_t)-1);
-      }
-
-      assert(chck_ring_pool_push_front(&pool, NULL));
-
-      {
-         size_t iter = 0;
-         struct item *current;
-         while ((current = chck_ring_pool_iter(&pool, &iter, false)))
-            assert(current != NULL);
-
-         assert(pool.items.count == 3);
-         assert(pool.items.used == 3 * sizeof(struct item));
-         assert(pool.items.allocated == 32 * sizeof(struct item));
-         assert(iter == 3);
-      }
-
-      assert(((struct item*)chck_ring_pool_pop_last(&pool))->a == 3);
-
-      {
-         size_t iter = 0;
-         struct item *current;
-         while ((current = chck_ring_pool_iter(&pool, &iter, false)))
-            assert(current != NULL);
-
-         assert(pool.items.count == 2);
-         assert(pool.items.used == 2 * sizeof(struct item));
-         assert(pool.items.allocated == 32 * sizeof(struct item));
-         assert(iter == 2);
-      }
-
-      chck_ring_pool_push_back(&pool, NULL);
-
-      {
-         size_t iter = 0;
-         struct item *current;
-         while ((current = chck_ring_pool_iter(&pool, &iter, false)))
-            assert(current != NULL);
-
-         assert(pool.items.count == 3);
-         assert(pool.items.used == 3 * sizeof(struct item));
-         assert(pool.items.allocated == 32 * sizeof(struct item));
-         assert(iter == 3);
-      }
-
-      chck_ring_pool_flush(&pool);
-
-      chck_ring_pool_push_back(&pool, (&(struct item){1, NULL}));
-      chck_ring_pool_push_front(&pool, (&(struct item){3, NULL}));
-      chck_ring_pool_push_back(&pool, (&(struct item){2, NULL}));
-
-      assert(((struct item*)chck_ring_pool_to_c_array(&pool, NULL))[0].a == 3);
-      assert(((struct item*)chck_ring_pool_to_c_array(&pool, NULL))[1].a == 1);
-      assert(((struct item*)chck_ring_pool_to_c_array(&pool, NULL))[2].a == 2);
-      chck_ring_pool_for_each_call(&pool, printa);
-
-      assert(((struct item*)chck_ring_pool_pop_last(&pool))->a == 2);
-      assert(((struct item*)chck_ring_pool_pop_first(&pool))->a == 3);
-      assert(((struct item*)chck_ring_pool_pop_last(&pool))->a == 1);
-      assert(pool.items.used == 0);
-
-      {
-         for (uint32_t i = 0; i < 33; ++i)
-            chck_ring_pool_push_back(&pool, NULL);
-
-         assert(pool.items.used == 33 * sizeof(struct item));
-         assert(pool.items.allocated == 64 * sizeof(struct item));
-
-         for (uint32_t i = 0; i < 32; ++i)
-            chck_ring_pool_pop_last(&pool);
-
-         assert(pool.items.used == 1 * sizeof(struct item));
-         assert(pool.items.allocated == 32 * sizeof(struct item));
-      }
-
-      struct item bars[4] = {{.a = 1}};
-      assert(chck_ring_pool_set_c_array(&pool, &bars, 4));
-      assert(pool.items.allocated == 4 * sizeof(struct item));
-      assert(pool.items.used == 4 * sizeof(struct item));
-      assert(!memcmp(pool.items.buffer, bars, sizeof(bars)));
-
-      chck_ring_pool_release(&pool);
-      assert(pool.items.allocated == 0);
-      assert(pool.items.used == 0);
-   }
-
    /* TEST: benchmark (many insertions, and removal expanding from center) */
    {
       const uint32_t iters = 0xFFFFF;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/sjis/sjis.h 
new/chck-0.0.20161208/chck/sjis/sjis.h
--- old/chck-0.0.20160429/chck/sjis/sjis.h      2016-05-05 14:21:04.000000000 
+0200
+++ new/chck-0.0.20161208/chck/sjis/sjis.h      2016-12-08 16:14:10.000000000 
+0100
@@ -6,7 +6,7 @@
 #include <stdbool.h>
 #include <stdint.h>
 
-CHCK_NONULLV(1) char* chck_sjis_to_utf8(const unsigned char *sjis, size_t 
size, size_t *out_size, bool terminate);
-CHCK_NONULLV(1) uint8_t* chck_utf8_to_sjis(const char *input, size_t size, 
size_t *out_size, bool terminate);
+char* chck_sjis_to_utf8(const unsigned char *sjis, size_t size, size_t 
*out_size, bool terminate);
+uint8_t* chck_utf8_to_sjis(const char *input, size_t size, size_t *out_size, 
bool terminate);
 
 #endif /* __sjis_h__ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/string/string.h 
new/chck-0.0.20161208/chck/string/string.h
--- old/chck-0.0.20160429/chck/string/string.h  2016-05-05 14:21:04.000000000 
+0200
+++ new/chck-0.0.20161208/chck/string/string.h  2016-12-08 16:14:10.000000000 
+0100
@@ -170,16 +170,16 @@
 }
 
 void chck_string_release(struct chck_string *string);
-CHCK_NONULLV(1) bool chck_string_set_cstr(struct chck_string *string, const 
char *data, bool is_heap);
-CHCK_NONULLV(1) bool chck_string_set_cstr_with_length(struct chck_string 
*string, const char *data, size_t len, bool is_heap);
-CHCK_NONULL bool chck_string_set(struct chck_string *string, const struct 
chck_string *other, bool is_heap);
-CHCK_NONULLV(1,2) CHCK_FORMAT(printf, 2, 3) bool chck_string_set_format(struct 
chck_string *string, const char *fmt, ...);
-CHCK_NONULL bool chck_string_set_varg(struct chck_string *string, const char 
*fmt, va_list args);
+bool chck_string_set_cstr(struct chck_string *string, const char *data, bool 
is_heap);
+bool chck_string_set_cstr_with_length(struct chck_string *string, const char 
*data, size_t len, bool is_heap);
+bool chck_string_set(struct chck_string *string, const struct chck_string 
*other, bool is_heap);
+CHCK_FORMAT(printf, 2, 3) bool chck_string_set_format(struct chck_string 
*string, const char *fmt, ...);
+bool chck_string_set_varg(struct chck_string *string, const char *fmt, va_list 
args);
 
-CHCK_NONULL char* chck_cstr_strip(char *cstr); /* modifies inplace */
-CHCK_NONULL char* chck_cstr_remove_chars(char *cstr, const char *bad); /* 
modifies inplace */
-CHCK_NONULL char* chck_cstr_replace_char(char *cstr, char replace, char with); 
/* modifies inplace */
-CHCK_NONULLV(2,3,5) const char* chck_cstr_tokenize(const char *cstr, size_t 
*out_len, const char *separator, bool skip_whitespace, const char **state);
-CHCK_NONULLV(2,3,5) const char* chck_cstr_tokenize_quoted(const char *cstr, 
size_t *out_len, const char *separator, const char *quotes, const char **state);
+char* chck_cstr_strip(char *cstr); /* modifies inplace */
+char* chck_cstr_remove_chars(char *cstr, const char *bad); /* modifies inplace 
*/
+char* chck_cstr_replace_char(char *cstr, char replace, char with); /* modifies 
inplace */
+const char* chck_cstr_tokenize(const char *cstr, size_t *out_len, const char 
*separator, bool skip_whitespace, const char **state);
+const char* chck_cstr_tokenize_quoted(const char *cstr, size_t *out_len, const 
char *separator, const char *quotes, const char **state);
 
 #endif /* __chck_string_h__ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/thread/queue/queue.h 
new/chck-0.0.20161208/chck/thread/queue/queue.h
--- old/chck-0.0.20160429/chck/thread/queue/queue.h     2016-05-05 
14:21:04.000000000 +0200
+++ new/chck-0.0.20161208/chck/thread/queue/queue.h     2016-12-08 
16:14:10.000000000 +0100
@@ -32,13 +32,13 @@
    } threads;
 };
 
-CHCK_NONULL bool chck_tqueue_add_task(struct chck_tqueue *tqueue, void *data, 
useconds_t block);
-CHCK_NONULL size_t chck_tqueue_collect(struct chck_tqueue *tqueue);
-CHCK_NONULL void chck_tqueue_set_fd(struct chck_tqueue *tqueue, int fd);
-CHCK_PURE CHCK_NONULL int chck_tqueue_get_fd(struct chck_tqueue *tqueue);
-CHCK_NONULL void chck_tqueue_set_keep_alive(struct chck_tqueue *tqueue, bool 
keep_alive);
-CHCK_PURE CHCK_NONULL bool chck_tqueue_get_keep_alive(struct chck_tqueue 
*tqueue);
+bool chck_tqueue_add_task(struct chck_tqueue *tqueue, void *data, useconds_t 
block);
+size_t chck_tqueue_collect(struct chck_tqueue *tqueue);
+void chck_tqueue_set_fd(struct chck_tqueue *tqueue, int fd);
+CHCK_PURE int chck_tqueue_get_fd(struct chck_tqueue *tqueue);
+void chck_tqueue_set_keep_alive(struct chck_tqueue *tqueue, bool keep_alive);
+CHCK_PURE bool chck_tqueue_get_keep_alive(struct chck_tqueue *tqueue);
 void chck_tqueue_release(struct chck_tqueue *tqueue);
-CHCK_NONULLV(1, 5) bool chck_tqueue(struct chck_tqueue *tqueue, size_t 
nthreads, size_t qsize, size_t msize, void (*work)(), void (*callback)(), void 
(*destructor)());
+bool chck_tqueue(struct chck_tqueue *tqueue, size_t nthreads, size_t qsize, 
size_t msize, void (*work)(), void (*callback)(), void (*destructor)());
 
 #endif /* __chck_dispatch_h__ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/unicode/unicode.h 
new/chck-0.0.20161208/chck/unicode/unicode.h
--- old/chck-0.0.20160429/chck/unicode/unicode.h        2016-05-05 
14:21:04.000000000 +0200
+++ new/chck-0.0.20161208/chck/unicode/unicode.h        2016-12-08 
16:14:10.000000000 +0100
@@ -18,12 +18,12 @@
    CHCK_UTF16_UNEXPECTED_LOW,
 };
 
-CHCK_NONULL uint8_t chck_utf32_encode(uint32_t dec, char out[4]);
-CHCK_NONULLV(2,3) uint8_t chck_utf16_encode(uint16_t dec, char out[4], 
uint16_t *in_out_hi, enum chck_utf16_error *out_error);
-CHCK_NONULL uint32_t chck_utf8_decode(uint32_t *state /* accept, reject */, 
uint32_t *codep, uint8_t byte);
-CHCK_PURE CHCK_NONULL uint8_t chck_utf8_mblen(const char u8[4]);
-CHCK_NONULL bool chck_utf8_validate(const char u8[4]);
-CHCK_NONULL uint32_t chck_utf8_codepoint(const char u8[4]);
-CHCK_NONULL bool chck_utf8_strlen(const char *u8, size_t len, size_t *out_len);
+uint8_t chck_utf32_encode(uint32_t dec, char out[4]);
+uint8_t chck_utf16_encode(uint16_t dec, char out[4], uint16_t *in_out_hi, enum 
chck_utf16_error *out_error);
+uint32_t chck_utf8_decode(uint32_t *state /* accept, reject */, uint32_t 
*codep, uint8_t byte);
+CHCK_PURE uint8_t chck_utf8_mblen(const char u8[4]);
+bool chck_utf8_validate(const char u8[4]);
+uint32_t chck_utf8_codepoint(const char u8[4]);
+bool chck_utf8_strlen(const char *u8, size_t len, size_t *out_len);
 
 #endif /* __chck_unicode_h__ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chck-0.0.20160429/chck/xdg/xdg.h 
new/chck-0.0.20161208/chck/xdg/xdg.h
--- old/chck-0.0.20160429/chck/xdg/xdg.h        2016-05-05 14:21:04.000000000 
+0200
+++ new/chck-0.0.20161208/chck/xdg/xdg.h        2016-12-08 16:14:10.000000000 
+0100
@@ -10,7 +10,7 @@
    uint32_t iter;
 };
 
-CHCK_NONULL char* xdg_get_path(const char *xdg_env, const char *default_path);
-CHCK_NONULL const char* xdg_get_paths(const char *xdg_env, const char 
*default_paths, struct xdg_paths *state, uint32_t max_iter);
+char* xdg_get_path(const char *xdg_env, const char *default_path);
+const char* xdg_get_paths(const char *xdg_env, const char *default_paths, 
struct xdg_paths *state, uint32_t max_iter);
 
 #endif /* __chck_xdg__ */


Reply via email to