8#ifndef UPB_WIRE_EPS_COPY_INPUT_STREAM_H_
9#define UPB_WIRE_EPS_COPY_INPUT_STREAM_H_
29#define kUpb_EpsCopyInputStream_SlopBytes 16
59 const char**
ptr,
size_t size,
60 bool enable_aliasing) {
63 memset(&e->
patch, 0, 32);
64 if (size) memcpy(&e->
patch, *
ptr, size);
122 *
ptr = func(e, *
ptr, overrun);
175 uintptr_t uptr = (uintptr_t)
ptr;
176 uintptr_t uend = (uintptr_t)e->
limit_ptr;
177 uintptr_t res = uptr + (size_t)size;
181 bool ret = res >= uptr && res <= uend;
267 const char* ret = *
ptr + size;
276 const char*
ptr,
int size) {
284 const char*
ptr,
void* to,
287 memcpy(to,
ptr, size);
310 if (!data)
return NULL;
328 const char*
ptr,
int size) {
329 int limit = size + (int)(
ptr - e->
end);
330 int delta = e->
limit - limit;
347 e->
limit += saved_delta;
355 if (overrun < e->limit) {
358 const char* old_end =
ptr;
359 const char* new_start = &e->
patch[0] + overrun;
368 e->
input_delta = (uintptr_t)old_end - (uintptr_t)new_start;
369 return callback(e, old_end, new_start);
373 return callback(e, NULL, NULL);
394 const char* saved_limit_ptr = e->
limit_ptr;
395 int saved_limit = e->
limit;
399 *
ptr = func(e, *
ptr, ctx);
401 e->
limit = saved_limit;
#define UPB_UNREACHABLE()
Definition def.inc:345
#define UPB_LIKELY(x)
Definition def.inc:264
#define UPB_ASSUME(expr)
Definition def.inc:319
#define UPB_ASSERT(expr)
Definition def.inc:329
#define UPB_FORCEINLINE
Definition def.inc:288
#define UPB_INLINE
Definition def.inc:144
#define UPB_MIN(x, y)
Definition def.inc:301
UPB_API_INLINE void * upb_Arena_Malloc(struct upb_Arena *a, size_t size)
Definition arena.h:65