summaryrefslogtreecommitdiff
path: root/cpan
diff options
context:
space:
mode:
authorJan Dubois <jand@activestate.com>2010-10-25 10:23:04 -0700
committerJan Dubois <jand@activestate.com>2010-10-25 10:23:51 -0700
commitea37b99e78f0d185369ee23611166669880576c6 (patch)
tree8ad2cd3ad25a47a2f2a1ed4fdcff783070d4cd52 /cpan
parent4019471ab8ddebeb44293629dde165abe0dbb752 (diff)
downloadperl-ea37b99e78f0d185369ee23611166669880576c6.tar.gz
For PROXYSUBS, tables may sometimes have no entries.
The reason being that all entries in the tables are guarded with #ifdef, so if none of the symbols are defined, then we still end up with an empty table. This actually happens in the POSIX module on Windows for the "yes" table. This reverts commit c553cca0 and changes based on it.
Diffstat (limited to 'cpan')
-rw-r--r--cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm10
1 files changed, 6 insertions, 4 deletions
diff --git a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm
index 0c040023f4..545d3221a0 100644
--- a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm
+++ b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm
@@ -135,18 +135,20 @@ sub boottime_iterator {
if ($push) {
return sprintf <<"EOBOOT", &$generator(&$extractor($iterator));
- do {
+ while ($iterator->name) {
he = $subname($athx $hash, $iterator->name,
$iterator->namelen, %s);
av_push(push, newSVhek(HeKEY_hek(he)));
- } while ((++$iterator)->name);
+ ++$iterator;
+ }
EOBOOT
} else {
return sprintf <<"EOBOOT", &$generator(&$extractor($iterator));
- do {
+ while ($iterator->name) {
$subname($athx $hash, $iterator->name,
$iterator->namelen, %s);
- } while ((++$iterator)->name);
+ ++$iterator;
+ }
EOBOOT
}
}