]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
paramnames: factor out common code after successful match
authorPauli <ppzgs1@gmail.com>
Mon, 7 Jul 2025 23:32:36 +0000 (09:32 +1000)
committerTomas Mraz <tomas@openssl.org>
Thu, 31 Jul 2025 18:21:25 +0000 (20:21 +0200)
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)

util/perl/OpenSSL/paramnames.pm

index b2290e557ee919bdc413546f783acfedee494529..075bbd190e728cc52d97736e39c5f66deae7ee24 100644 (file)
@@ -646,6 +646,23 @@ sub generate_public_macros {
     return join("\n", sort @macros);
 }
 
+sub trie_matched {
+  my $field = shift;
+  my $num = shift;
+  my $indent1 = shift;
+  my $indent2 = shift;
+
+  if (defined($num)) {
+    printf "%sif (ossl_unlikely(r->num_%s >= %s))\n", $indent1, $field, $num;
+    printf "%sreturn 0;\n", $indent2;
+    printf "%sr->%s[r->num_%s++] = (OSSL_PARAM *)p;\n", $indent1, $field, $field;
+  } else {
+    printf "%sif (ossl_unlikely(r->%s != NULL))\n", $indent1, $field;
+    printf "%sreturn 0;\n", $indent2;
+    printf "%sr->%s = (OSSL_PARAM *)p;\n", $indent1, $field;
+  }
+}
+
 sub generate_decoder_from_trie {
     my $n = shift;
     my $trieref = shift;
@@ -670,16 +687,8 @@ sub generate_decoder_from_trie {
                 if ($suf ne $trieref->{'suffix'});
         }
         print ")) {\n";
-        if (defined($num)) {
-            printf "%sif (ossl_unlikely(r->num_%s >= %s))\n", $indent1, $field, $num;
-            printf "%sreturn 0;\n", $indent2;
-            printf "%sr->%s[r->num_%s++] = (OSSL_PARAM *)p;\n", $indent1, $field, $field;
-        } else {
-            printf "%sif (ossl_unlikely(r->%s != NULL))\n", $indent1, $field;
-            printf "%sreturn 0;\n", $indent2;
-            printf "%sr->%s = (OSSL_PARAM *)p;\n", $indent1, $field;
-        }
-        printf "%s}\n", $indent0;
+        trie_matched($field, $num, $indent1, $indent2);
+       printf "%s}\n", $indent0;
         return;
     }
 
@@ -691,15 +700,7 @@ sub generate_decoder_from_trie {
             my $num = $concat_num->{$field};
             printf "%sbreak;\n", $indent1;
             printf "%scase '\\0':\n", $indent0;
-            if (defined($num)) {
-                printf "%sif (ossl_unlikely(r->num_%s >= %s))\n", $indent1, $field, $num;
-                printf "%sreturn 0;\n", $indent2;
-                printf "%sr->%s[r->num_%s++] = (OSSL_PARAM *)p;\n", $indent1, $field, $field;
-            } else {
-                printf "%sif (ossl_unlikely(r->%s != NULL))\n", $indent1, $field;
-                printf "%sreturn 0;\n", $indent2;
-                printf "%sr->%s = (OSSL_PARAM *)p;\n", $indent1, $field;
-           }
+            trie_matched($field, $num, $indent1, $indent2);
         } else {
             printf "%sbreak;\n", $indent1;
             printf "%scase '%s':", $indent0, $l;