pb_istream_from_buffer: add const to prototype
authorAndrew Ruder <andrew.ruder@elecsyscorp.com>
Wed, 16 Dec 2015 14:13:55 +0000 (08:13 -0600)
committerAndrew Ruder <andrew.ruder@elecsyscorp.com>
Wed, 16 Dec 2015 14:24:58 +0000 (08:24 -0600)
commit3d36157949dd1e5220bcb58b89381f59c767f558
tree3485ecb2db65af4a0b9d56c20537acd1aa3ee84f
parent56f7c488df99ae655b47b5838055e48b886665a1
pb_istream_from_buffer: add const to prototype

This commit changes the prototype for pb_istream_from_buffer from:
  pb_istream_t pb_istream_from_buffer(uint8_t *buf, size_t bufsize);
to
  pb_istream_t pb_istream_from_buffer(const uint8_t *buf, size_t bufsize);

This allows pb_istream_from_buffer users to point to const buffers
without having to inspect code (to ensure practical const-ness) and then be
forced to manually cast away const.

In order to not break compatibility with existing programs (by
introducing a const/non-const union in the pb_istream_t state) we simply
cast away the const in pb_istream_from_buffer and re-apply it when
possible in the callbacks.  Unfortunately we lose any compiler help in
the callbacks to ensure we are treating the buffer as const but manual
inspection is easy enough.
pb_decode.c
pb_decode.h