+ return;
+}
+
+static void lt_padxv_map_store(pTHX_ const OP *o, SV *orig_pkg, SV *type_pkg, SV *type_meth, OP *(*old_pp)(pTHX)) {
+#define lt_padxv_map_store(O, OP, TP, TM, PP) lt_padxv_map_store(aTHX_ (O), (OP), (TP), (TM), (PP))
+ lt_op_padxv_info *oi;
+
+ XSH_LOCK(<_op_map_mutex);
+
+ if (!(oi = ptable_fetch(lt_op_padxv_map, o))) {
+ oi = PerlMemShared_malloc(sizeof *oi);
+ ptable_map_store(lt_op_padxv_map, o, oi);
+#ifdef MULTIPLICITY
+ oi->buf = NULL;
+ oi->buf_size = 0;
+#else /* MULTIPLICITY */
+ } else {
+ SvREFCNT_dec(oi->orig_pkg);
+ SvREFCNT_dec(oi->type_pkg);
+ SvREFCNT_dec(oi->type_meth);
+#endif /* !MULTIPLICITY */
+ }
+
+#ifdef MULTIPLICITY
+ {
+ STRLEN op_len = SvCUR(orig_pkg);
+ STRLEN tp_len = SvCUR(type_pkg);
+ STRLEN tm_len = SvCUR(type_meth);
+ STRLEN new_buf_size = op_len + tp_len + tm_len;
+ char *buf;
+ if (new_buf_size > oi->buf_size) {
+ PerlMemShared_free(oi->buf);
+ oi->buf = PerlMemShared_malloc(new_buf_size);
+ oi->buf_size = new_buf_size;
+ }
+ buf = oi->buf;
+ Copy(SvPVX(orig_pkg), buf, op_len, char);
+ buf += op_len;
+ Copy(SvPVX(type_pkg), buf, tp_len, char);
+ buf += tp_len;
+ Copy(SvPVX(type_meth), buf, tm_len, char);
+ oi->orig_pkg_len = op_len;
+ oi->type_pkg_len = tp_len;
+ oi->type_meth_len = tm_len;
+ SvREFCNT_dec(orig_pkg);
+ SvREFCNT_dec(type_pkg);
+ SvREFCNT_dec(type_meth);
+ }
+#else /* MULTIPLICITY */