X-Git-Url: https://www.bearssl.org/gitweb//home/git/?p=BearSSL;a=blobdiff_plain;f=src%2Fx509%2Fx509_decoder.c;h=6d64a8deb9ac4e8cea64de32c8ff4ec6ec0a68a6;hp=d81bba2f1db47c32d24be4749fca00ef6230cba1;hb=f9b85fee907b65a9929263ba060476dd7ec79c8d;hpb=3210f38e0491b39aec1ef419cb4114e9483089fb diff --git a/src/x509/x509_decoder.c b/src/x509/x509_decoder.c index d81bba2..6d64a8d 100644 --- a/src/x509/x509_decoder.c +++ b/src/x509/x509_decoder.c @@ -372,6 +372,8 @@ name(void *ctx) \ T0_DEFENTRY(br_x509_decoder_init_main, 92) +#define T0_NEXT(t0ipp) (*(*(t0ipp)) ++) + void br_x509_decoder_run(void *t0ctx) { @@ -419,15 +421,17 @@ br_x509_decoder_run(void *t0ctx) #define T0_CO() do { \ goto t0_exit; \ } while (0) -#define T0_RET() break +#define T0_RET() goto t0_next dp = ((t0_context *)t0ctx)->dp; rp = ((t0_context *)t0ctx)->rp; ip = ((t0_context *)t0ctx)->ip; + goto t0_next; for (;;) { uint32_t t0x; - t0x = t0_parse7E_unsigned(&ip); + t0_next: + t0x = T0_NEXT(&ip); if (t0x < T0_INTERPRETED) { switch (t0x) { int32_t t0off;