Made a common longjmp()-handling layer, which can optionally be used on upb_EpsCopyInputStream.
#24715
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Made a common longjmp()-handling layer, which can optionally be used on
upb_EpsCopyInputStream.upb_EpsCopyInputStreamandupb_WireReadercan now report all errors vialongjmp()when an error handler is installed.This lets us unwind some complexity:
upb_WireReader_Read*(), instead of having a separate copy of those functions solely so that errors canlongjmp().upb_EpsCopyInputStreamno longer needs to support a custom callback forIsDoneFallback, which existed solely so that errors couldlongjmp(). This allows us to moveupb_EpsCopyInputStream_IsDoneFallback()out of the header and into the source file, where fallback functions belong.In future CLs we can apply the same pattern to
upb_Arenaso that allocation failures willlongjmp().