Revert "Change the substream implementation in pb_decode."

This reverts commit dc2da0edc5.

Add pb_close_string_substream() for copying back the state.
This makes adding error messages easier in the future, as also
them need to be propagated back from the substream.
This commit is contained in:
Petteri Aimonen
2012-08-24 20:43:21 +03:00
parent 2941e90e04
commit 9383f305dc
3 changed files with 29 additions and 14 deletions

View File

@@ -23,6 +23,10 @@
*
* 3) You can use state to store your own data (e.g. buffer pointer),
* and rely on pb_read to verify that no-body reads past bytes_left.
*
* 4) Your callback may be used with substreams, in which case bytes_left
* is different than from the main stream. Don't use bytes_left to compute
* any pointers.
*/
struct _pb_istream_t
{
@@ -69,6 +73,7 @@ bool pb_decode_fixed64(pb_istream_t *stream, void *dest);
/* Make a limited-length substream for reading a PB_WT_STRING field. */
bool pb_make_string_substream(pb_istream_t *stream, pb_istream_t *substream);
void pb_close_string_substream(pb_istream_t *stream, pb_istream_t *substream);
/* --- Internal functions ---
* These functions are not terribly useful for the average library user, but