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)
This commit is contained in:
Richard Levitte 2019-11-04 10:29:53 +01:00
parent 3da95f3c51
commit 81ddd952ea

View File

@ -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.