Lines Matching defs:trigger
113 /* Fetch the data container of a trigger */
115 HUF_get_trigger_content(pTHX_ SV *trigger) {
117 if (trigger && (mg = mg_find(trigger, PERL_MAGIC_uvar)))
124 * the uf_set field of the uvar magic of a trigger.
126 static I32 HUF_destroy_obj(pTHX_ IV index, SV *trigger) {
130 if (!SvROK(trigger) && (!PL_in_clean_all)) {
132 AV* cont = HUF_get_trigger_content(aTHX_ trigger);
150 /* Create a trigger for an object. The trigger is a magical SV
155 * object may * have to be deleted. The trigger is stored in the
161 SV* trigger = sv_rvweaken(newRV_inc(SvRV(obj)));
165 HUF_add_uvar_magic(aTHX_ trigger, NULL, &HUF_destroy_obj, 0, (SV*)cont);
166 (void) hv_store_ent(MY_CXT.ob_reg, ob_id, trigger, 0);
167 return trigger;
170 /* retrieve a trigger for obj if one exists, return NULL otherwise */
182 SV* trigger = HUF_ask_trigger(aTHX_ ob_id);
183 if (!trigger)
184 trigger = HUF_new_trigger(aTHX_ obj, ob_id);
185 return( trigger);
188 /* mark an object (trigger) as having been used with a field
192 HUF_mark_field(pTHX_ SV *trigger, SV *field) {
193 AV* cont = HUF_get_trigger_content(aTHX_ trigger);
214 SV* trigger = HUF_get_trigger(aTHX_ keysv, ob_id);
215 HUF_mark_field(aTHX_ trigger, field);
219 SV* trigger;
220 if (( trigger = HUF_ask_trigger(aTHX_ keysv)))
221 HUF_mark_field(aTHX_ trigger, field);
285 HUF_fix_trigger(pTHX_ SV *trigger, SV *new_id) {
286 AV* cont = HUF_get_trigger_content(aTHX_ trigger);
304 /* update the trigger */
324 SV* trigger = hv_delete_ent(MY_CXT.ob_reg, old_id, 0, 0);
325 SV* obj = SvRV(trigger);
339 HUF_fix_trigger(aTHX_ trigger, new_id);
340 (void) hv_store_ent(MY_CXT.ob_reg, new_id, SvREFCNT_inc(trigger), 0);
413 SV* trigger;
421 trigger = HUF_get_trigger(aTHX_ obj, HUF_obj_id(aTHX_ obj));
425 HUF_mark_field(aTHX_ trigger, SvRV(field_ref));
444 SV* trigger = HUF_ask_trigger(aTHX_ ob_id);
445 if (trigger) {
446 AV* cont = HUF_get_trigger_content(aTHX_ trigger);