if (stmt_matches_pointcut (pc, stmt))
{
struct aop_joinpoint jp;
- jp.pc = pc;
- jp.gsi = &gsi;
- jp.stmt = stmt;
- jp.is_prepared = false;
-
+ init_joinpoint (&jp, &gsi, pc, stmt);
cb (&jp, callback_param);
}
}
just to make sure that initialization is getting called.)*/
memset (&gsi, 0xfa, sizeof (gimple_stmt_iterator));
- jp.pc = pc;
- jp.gsi = &gsi;
- jp.is_prepared = false;
+ init_joinpoint (&jp, &gsi, pc, NULL);
cb (&jp, callback_param);
}
if (gimple_code (stmt) == GIMPLE_RETURN)
{
struct aop_joinpoint jp;
- jp.pc = pc;
- jp.gsi = &gsi;
- jp.stmt = stmt;
- jp.is_prepared = false;
+ init_joinpoint (&jp, &gsi, pc, stmt);
cb (&jp, callback_param);
/* It's possible that gsi is no longer a valid iterator
if (call_matches (pc, stmt))
{
struct aop_joinpoint jp;
- jp.pc = pc;
- jp.gsi = &gsi;
- jp.stmt = stmt;
- jp.is_prepared = false;
+ init_joinpoint (&jp, &gsi, pc, stmt);
cb (&jp, callback_param);
}
}
return pc;
}
+
+/*
+* Initialize a joinpoint with default values.
+*/
+void
+init_joinpoint (struct aop_joinpoint *jp, gimple_stmt_iterator *gsi,
+ struct aop_pointcut *pc, gimple stmt)
+{
+ jp->pc = pc;
+ jp->gsi = gsi;
+ jp->stmt = stmt;
+ jp->is_prepared = false;
+}
struct aop_pointcut *create_pointcut (enum aop_pckind kind);
+void init_joinpoint (struct aop_joinpoint *jp, gimple_stmt_iterator *gsi,
+ struct aop_pointcut *pc, gimple stmt);
+
void op_default_prepare_for_weave (struct aop_joinpoint *jp);
void op_default_insert_before (struct aop_joinpoint *jp, gimple stmt);
void op_default_insert_after (struct aop_joinpoint *jp, gimple stmt);