# Write the hook-data marshalling functions.
#
-foreach my $arg_type (keys %arg_types) {
+foreach my $arg_type (sort keys %arg_types) {
next if ($arg_type eq 'void');
if (defined $perl_api_types{$arg_type}) {
my @members;
- while (my ($member, $definition) = each %$struct) {
+ foreach my $member (sort keys %$struct) {
+ my $definition = $struct->{$member};
my ($type, $pretty_name, $rw);
if (ref $definition eq 'ARRAY') {
# Now write the actual hook handlers.
#
-while (my ($hookname, $arg_type) = each %hooks) {
+foreach my $hookname (sort keys %hooks) {
+ my $arg_type = $hooks{$hookname};
next if grep { $_ eq $arg_type } @special_types;
print $outfile <<"EOF";
static void perl_hook_$hookname ($arg_type * data)
void enable_perl_hook_handler(const char *hookname)
{
EOF
-foreach my $hookname (keys %hooks) {
+foreach my $hookname (sort keys %hooks) {
print $outfile <<"EOF";
if (0 == strcmp(hookname, "$hookname")) {
hook_add_$hookname(perl_hook_$hookname);
void disable_perl_hook_handler(const char *hookname)
{
EOF
-foreach my $hookname (keys %hooks) {
+foreach my $hookname (sort keys %hooks) {
print $outfile <<"EOF";
if (0 == strcmp(hookname, "$hookname")) {
hook_del_$hookname(perl_hook_$hookname);