Lines Matching refs:cv

1023 		CV *cv;
1088 cv = GvCV(kGVOP_gv);
1089 if (!cv)
1091 if (CvLVALUE(cv))
1579 C<len> arguments to the subroutine identified by the C<cv> argument which
1593 Perl_apply_attrs_string(pTHX_ char *stashpv, CV *cv,
1619 newRV((SV*)cv)),
1902 CV *cv = get_cv("DB::postponed", FALSE);
1903 if (cv) {
1908 call_sv((SV*)cv, G_DISCARD);
3929 Perl_cv_undef(pTHX_ CV *cv)
3932 if (CvMUTEXP(cv)) {
3933 MUTEX_DESTROY(CvMUTEXP(cv));
3934 Safefree(CvMUTEXP(cv));
3935 CvMUTEXP(cv) = 0;
3940 if (CvFILE(cv) && !CvXSUB(cv)) {
3942 Safefree(CvFILE(cv));
3944 CvFILE(cv) = 0;
3947 if (!CvXSUB(cv) && CvROOT(cv)) {
3949 if (CvDEPTH(cv) || (CvOWNER(cv) && CvOWNER(cv) != thr))
3952 if (CvDEPTH(cv))
3959 op_free(CvROOT(cv));
3960 CvROOT(cv) = Nullop;
3963 SvPOK_off((SV*)cv); /* forget prototype */
3964 CvGV(cv) = Nullgv;
3966 pad_undef(cv);
3969 if (!SvREFCNT(cv) && CvOUTSIDE(cv)) {
3970 if (!CvWEAKOUTSIDE(cv))
3971 SvREFCNT_dec(CvOUTSIDE(cv));
3972 CvOUTSIDE(cv) = Nullcv;
3974 if (CvCONST(cv)) {
3975 SvREFCNT_dec((SV*)CvXSUBANY(cv).any_ptr);
3976 CvCONST_off(cv);
3978 if (CvXSUB(cv)) {
3979 CvXSUB(cv) = 0;
3982 CvFLAGS(cv) &= CVf_WEAKOUTSIDE;
3986 Perl_cv_ckproto(pTHX_ CV *cv, GV *gv, char *p)
3988 if (((!p != !SvPOK(cv)) || (p && strNE(p, SvPVX(cv)))) && ckWARN_d(WARN_PROTOTYPE)) {
3997 if (SvPOK(cv))
3998 Perl_sv_catpvf(aTHX_ msg, " (%"SVf")", (SV *)cv);
4010 static void const_sv_xsub(pTHX_ CV* cv);
4018 If C<cv> is a constant sub eligible for inlining. returns the constant
4027 Perl_cv_const_sv(pTHX_ CV *cv)
4029 if (!cv || !CvCONST(cv))
4031 return (SV*)CvXSUBANY(cv).any_ptr;
4035 Perl_op_const_sv(pTHX_ OP *o, CV *cv)
4062 else if ((type == OP_PADSV || type == OP_CONST) && cv) {
4063 sv = PAD_BASE_SV(CvPADLIST(cv), o->op_targ);
4066 if (CvCONST(cv)) {
4113 register CV *cv=0;
4153 cv = PL_compcv = NULL;
4158 cv = (!name || GvCVGEN(gv)) ? Nullcv : GvCV(gv);
4161 if (cv && GvUNIQUE(gv) && SvREADONLY(cv)) {
4171 if (cv) {
4172 bool exists = CvROOT(cv) || CvXSUB(cv);
4184 if (exists || SvPOK(cv))
4185 cv_ckproto(cv, gv, ps);
4191 CvFLAGS(cv) |= (CvFLAGS(PL_compcv) & CVf_BUILTIN_ATTRS);
4198 if (PL_curstackinfo->si_type == PERLSI_SORT && PL_sortcop == CvSTART(cv))
4202 || (CvCONST(cv)
4203 && (!const_sv || sv_cmp(cv_const_sv(cv), const_sv))))
4209 CvCONST(cv) ? "Constant subroutine %s redefined"
4213 SvREFCNT_dec(cv);
4214 cv = Nullcv;
4220 if (cv) {
4221 assert(!CvROOT(cv) && !CvCONST(cv));
4222 sv_setpv((SV*)cv, ""); /* prototype is "" */
4223 CvXSUBANY(cv).any_ptr = const_sv;
4224 CvXSUB(cv) = const_sv_xsub;
4225 CvCONST_on(cv);
4229 cv = newCONSTSUB(NULL, name, const_sv);
4241 /* Need to do a C<use attributes $stash_of_cv,\&cv,@attrs>
4244 if (cv && !block) {
4245 rcv = (SV*)cv;
4247 CvFLAGS(cv) |= (CvFLAGS(PL_compcv) & CVf_BUILTIN_ATTRS);
4248 if (CvGV(cv) && GvSTASH(CvGV(cv)))
4249 stash = GvSTASH(CvGV(cv));
4250 else if (CvSTASH(cv))
4251 stash = CvSTASH(cv);
4256 /* possibly about to re-define existing subr -- ignore old cv */
4265 if (cv) { /* must reuse cv if autoloaded */
4271 /* transfer PL_compcv to cv */
4272 cv_undef(cv);
4273 CvFLAGS(cv) = CvFLAGS(PL_compcv);
4274 if (!CvWEAKOUTSIDE(cv))
4275 SvREFCNT_dec(CvOUTSIDE(cv));
4276 CvOUTSIDE(cv) = CvOUTSIDE(PL_compcv);
4277 CvOUTSIDE_SEQ(cv) = CvOUTSIDE_SEQ(PL_compcv);
4279 CvPADLIST(cv) = CvPADLIST(PL_compcv);
4282 pad_fixup_inner_anons(CvPADLIST(cv), PL_compcv, cv);
4289 cv = PL_compcv;
4291 GvCV(gv) = cv;
4296 CvGV(cv) = gv;
4297 CvFILE_set_from_cop(cv, PL_curcop);
4298 CvSTASH(cv) = PL_curstash;
4300 CvOWNER(cv) = 0;
4301 if (!CvMUTEXP(cv)) {
4302 New(666, CvMUTEXP(cv), 1, perl_mutex);
4303 MUTEX_INIT(CvMUTEXP(cv));
4308 sv_setpv((SV*)cv, ps);
4332 if (CvLVALUE(cv)) {
4333 CvROOT(cv) = newUNOP(OP_LEAVESUBLV, 0,
4342 CvROOT(cv) = newUNOP(OP_LEAVESUB, 0, scalarseq(block));
4344 CvROOT(cv)->op_private |= OPpREFCOUNTED;
4345 OpREFCNT_set(CvROOT(cv), 1);
4346 CvSTART(cv) = LINKLIST(CvROOT(cv));
4347 CvROOT(cv)->op_next = 0;
4348 CALL_PEEP(CvSTART(cv));
4352 pad_tidy(CvCLONE(cv) ? padtidy_SUBCLONE : padtidy_SUB);
4354 if (CvCLONE(cv)) {
4355 assert(!CvCONST(cv));
4356 if (ps && !*ps && op_const_sv(block, cv))
4357 CvCONST_on(cv);
4405 av_push(PL_beginav, (SV*)cv);
4406 GvCV(gv) = 0; /* cv has been hijacked */
4418 av_store(PL_endav, 0, (SV*)cv);
4419 GvCV(gv) = 0; /* cv has been hijacked */
4428 av_store(PL_checkav, 0, (SV*)cv);
4429 GvCV(gv) = 0; /* cv has been hijacked */
4437 av_push(PL_initav, (SV*)cv);
4438 GvCV(gv) = 0; /* cv has been hijacked */
4445 return cv;
4461 CV* cv;
4478 cv = newXS(name, const_sv_xsub, savepv(CopFILE(PL_curcop)));
4479 CvXSUBANY(cv).any_ptr = sv;
4480 CvCONST_on(cv);
4481 sv_setpv((SV*)cv, ""); /* prototype is "" */
4488 return cv;
4505 register CV *cv;
4507 if ((cv = (name ? GvCV(gv) : Nullcv))) {
4510 SvREFCNT_dec(cv);
4511 cv = 0;
4513 else if (CvROOT(cv) || CvXSUB(cv) || GvASSUMECV(gv)) {
4515 if (ckWARN(WARN_REDEFINE) && !(CvGV(cv) && GvSTASH(CvGV(cv))
4516 && strEQ(HvNAME(GvSTASH(CvGV(cv))), "autouse"))) {
4521 CvCONST(cv) ? "Constant subroutine %s redefined"
4526 SvREFCNT_dec(cv);
4527 cv = 0;
4531 if (cv) /* must reuse cv if autoloaded */
4532 cv_undef(cv);
4534 cv = (CV*)NEWSV(1105,0);
4535 sv_upgrade((SV *)cv, SVt_PVCV);
4537 GvCV(gv) = cv;
4542 CvGV(cv) = gv;
4544 New(666, CvMUTEXP(cv), 1, perl_mutex);
4545 MUTEX_INIT(CvMUTEXP(cv));
4546 CvOWNER(cv) = 0;
4549 CvFILE(cv) = filename; /* NOTE: not copied, as it is expected to be
4551 CvXSUB(cv) = subaddr;
4566 av_push(PL_beginav, (SV*)cv);
4567 GvCV(gv) = 0; /* cv has been hijacked */
4573 av_store(PL_endav, 0, (SV*)cv);
4574 GvCV(gv) = 0; /* cv has been hijacked */
4582 av_store(PL_checkav, 0, (SV*)cv);
4583 GvCV(gv) = 0; /* cv has been hijacked */
4590 av_push(PL_initav, (SV*)cv);
4591 GvCV(gv) = 0; /* cv has been hijacked */
4595 CvANON_on(cv);
4598 return cv;
4604 register CV *cv;
4620 if ((cv = GvFORM(gv))) {
4628 SvREFCNT_dec(cv);
4630 cv = PL_compcv;
4631 GvFORM(gv) = cv;
4632 CvGV(cv) = gv;
4633 CvFILE_set_from_cop(cv, PL_curcop);
4637 CvROOT(cv) = newUNOP(OP_LEAVEWRITE, 0, scalarseq(block));
4638 CvROOT(cv)->op_private |= OPpREFCOUNTED;
4639 OpREFCNT_set(CvROOT(cv), 1);
4640 CvSTART(cv) = LINKLIST(CvROOT(cv));
4641 CvROOT(cv)->op_next = 0;
4642 CALL_PEEP(CvSTART(cv));
6098 CV *cv = 0;
6115 cv = GvCVu(gv);
6116 if (!cv)
6118 else if (SvPOK(cv)) {
6119 namegv = CvANON(cv) ? gv : CvGV(cv);
6120 proto = SvPV((SV*)cv, n_a);
6292 gv_ename(namegv), cv);
6868 const_sv_xsub(pTHX_ CV* cv)
6874 HvNAME(GvSTASH(CvGV(cv))), GvNAME(CvGV(cv)));