summaryrefslogtreecommitdiff
path: root/rt/lib/RT/Config.pm
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2014-05-27 15:20:05 -0700
committerIvan Kohler <ivan@freeside.biz>2014-05-30 13:00:41 -0700
commit0ea23112cfa0d82738b0f08d60d90579721b7524 (patch)
tree392dee3654d0f3839944f748819a39c8ce20192c /rt/lib/RT/Config.pm
parent60dd95422a1ad4724e0c5d9dd7f8e8878cd96aa8 (diff)
rt 4.0.20 (RT#13852)
Diffstat (limited to 'rt/lib/RT/Config.pm')
-rw-r--r--rt/lib/RT/Config.pm13
1 files changed, 8 insertions, 5 deletions
diff --git a/rt/lib/RT/Config.pm b/rt/lib/RT/Config.pm
index 18f2b7ae3..23441934f 100644
--- a/rt/lib/RT/Config.pm
+++ b/rt/lib/RT/Config.pm
@@ -1219,11 +1219,14 @@ sub SetFromConfig {
my $entry = ${$pack}{$k};
next unless $entry;
- # get entry for type we are looking for
- # XXX skip references to scalars or other references.
- # Otherwie 5.10 goes boom. maybe we should skip any
- # reference
- next if ref($entry) eq 'SCALAR' || ref($entry) eq 'REF';
+ # Inlined constants are simplified in the symbol table --
+ # namely, when possible, you only get a reference back in
+ # $entry, rather than a full GLOB. In 5.10, scalar
+ # constants began being inlined this way; starting in 5.20,
+ # list constants are also inlined. Notably, ref(GLOB) is
+ # undef, but inlined constants are currently either REF,
+ # SCALAR, or ARRAY.
+ next if ref($entry);
my $ref_type = ref($ref);