summaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2019-11-04 10:29:53 +0100
committerRichard Levitte <levitte@openssl.org>2019-11-05 22:44:21 +0100
commit81ddd952ea1c4f80df45435fb927fd0c6314a008 (patch)
tree3135bf043fbc89abc626fd9be5825bd638f17ea6 /util
parent3da95f3c5159b8404917e3ff349566488c28f798 (diff)
OpenSSL::Ordinals: add a renumber() function, to assign unassigned symbols
This should be used when it's time to assign constant numbers to the unassigned symbols. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10348)
Diffstat (limited to 'util')
-rw-r--r--util/perl/OpenSSL/Ordinals.pm21
1 files changed, 20 insertions, 1 deletions
diff --git a/util/perl/OpenSSL/Ordinals.pm b/util/perl/OpenSSL/Ordinals.pm
index 55d5b2f0e3..411cdc9d60 100644
--- a/util/perl/OpenSSL/Ordinals.pm
+++ b/util/perl/OpenSSL/Ordinals.pm
@@ -169,7 +169,26 @@ sub load {
return 1;
}
-=item B<$ordinals-E<gt>rewrite>
+=item B<< $ordinals->renumber >>
+
+Renumber any item that doesn't have an assigned number yet.
+
+=cut
+
+sub renumber {
+ my $self = shift;
+
+ my $max_assigned = 0;
+ foreach ($self->items(by => by_number())) {
+ $_->number($_->intnum()) if $_->number() =~ m|^\?|;
+ if ($max_assigned < $_->number()) {
+ $max_assigned = $_->number();
+ }
+ }
+ $self->{maxassigned} = $max_assigned;
+}
+
+=item B<< $ordinals->rewrite >>
If an ordinals file has been loaded, it gets rewritten with the data from
the current work database.