… | |
… | |
158 | { |
158 | { |
159 | AV *pad = (AV *)AvARRAY (padlist)[depth]; |
159 | AV *pad = (AV *)AvARRAY (padlist)[depth]; |
160 | |
160 | |
161 | av_push (excl, newSVuv (PTR2UV (pad))); /* exclude pads themselves from being found */ |
161 | av_push (excl, newSVuv (PTR2UV (pad))); /* exclude pads themselves from being found */ |
162 | |
162 | |
|
|
163 | /* The 0th pad slot is @_ */ |
|
|
164 | if (AvARRAY (pad)[0] == targ) |
|
|
165 | res_pair ("the argument array for"); |
|
|
166 | |
163 | for (i = AvFILLp (pad) + 1; i--; ) |
167 | for (i = AvFILLp (pad) + 1; --i; ) |
164 | if (AvARRAY (pad)[i] == targ) |
168 | if (AvARRAY (pad)[i] == targ) |
165 | { |
169 | { |
166 | /* Values from constant functions are stored in the pad without any name */ |
170 | /* Values from constant functions are stored in the pad without any name */ |
167 | SV *name_sv = AvARRAY (AvARRAY (padlist)[0])[i]; |
171 | SV *name_sv = AvARRAY (AvARRAY (padlist)[0])[i]; |
168 | |
172 | |
… | |
… | |
211 | if (rmagical) |
215 | if (rmagical) |
212 | SvRMAGICAL_on (sv); |
216 | SvRMAGICAL_on (sv); |
213 | } |
217 | } |
214 | } |
218 | } |
215 | |
219 | |
|
|
220 | if (targ == (SV*)PL_main_cv) |
|
|
221 | res_text ("the main body of the program"); |
|
|
222 | |
216 | EXTEND (SP, 2); |
223 | EXTEND (SP, 2); |
217 | PUSHs (sv_2mortal (newRV_noinc ((SV *)about))); |
224 | PUSHs (sv_2mortal (newRV_noinc ((SV *)about))); |
218 | PUSHs (sv_2mortal (newRV_noinc ((SV *)excl))); |
225 | PUSHs (sv_2mortal (newRV_noinc ((SV *)excl))); |
219 | } |
226 | } |
220 | |
227 | |