From c753e71e0a0aea2c540dab96fb02c9c62c6ba7a2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fr=E9d=E9ric=20Giudicelli?= Date: Thu, 14 Aug 2014 22:34:49 -0400 Subject: [PATCH] RT783: Minor optimization to ASN1_INTEGER_set Remove local variable and avoid extra assignment. Reviewed-by: Emilia Kasper --- crypto/asn1/a_int.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/crypto/asn1/a_int.c b/crypto/asn1/a_int.c index 297c45a9ff..b9f2ac1b05 100644 --- a/crypto/asn1/a_int.c +++ b/crypto/asn1/a_int.c @@ -337,9 +337,7 @@ int ASN1_INTEGER_set(ASN1_INTEGER *a, long v) int j,k; unsigned int i; unsigned char buf[sizeof(long)+1]; - long d; - a->type=V_ASN1_INTEGER; if (a->length < (int)(sizeof(long)+1)) { if (a->data != NULL) @@ -352,18 +350,19 @@ int ASN1_INTEGER_set(ASN1_INTEGER *a, long v) ASN1err(ASN1_F_ASN1_INTEGER_SET,ERR_R_MALLOC_FAILURE); return(0); } - d=v; - if (d < 0) + if (v < 0) { - d= -d; + v= -v; a->type=V_ASN1_NEG_INTEGER; } + else + a->type=V_ASN1_INTEGER; for (i=0; i>=8; + if (v == 0) break; + buf[i]=(int)v&0xff; + v>>=8; } j=0; for (k=i-1; k >=0; k--) -- 2.25.1