From: Frédéric Giudicelli Date: Fri, 15 Aug 2014 02:34:49 +0000 (-0400) Subject: RT783: Minor optimization to ASN1_INTEGER_set X-Git-Tag: master-post-reformat~513 X-Git-Url: https://git.openssl.org/?p=openssl.git;a=commitdiff_plain;h=c753e71e0a0aea2c540dab96fb02c9c62c6ba7a2;hp=cf8bac445660fca7a354f8cb78aeaac623afc12e RT783: Minor optimization to ASN1_INTEGER_set Remove local variable and avoid extra assignment. Reviewed-by: Emilia Kasper --- 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--)