Skip to content

Commit

Permalink
[core] Another step towards better annotation output; this does the s…
Browse files Browse the repository at this point in the history
…ame for method calls as the previous patch did for other invocations.

git-svn-id: https://svn.parrot.org/parrot/trunk@47118 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
  • Loading branch information
jnthn committed May 30, 2010
1 parent 06d394a commit b5aef79
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
10 changes: 10 additions & 0 deletions src/ops/core_ops.c
Expand Up @@ -18607,6 +18607,8 @@ Parrot_callmethodcc_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
PMC * const signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));

Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);

if (PMC_IS_NULL(method_pmc)) {
PMC * const _class = VTABLE_get_class(interp, object);
if (PMC_IS_NULL(_class)) {
Expand Down Expand Up @@ -18641,6 +18643,8 @@ Parrot_callmethodcc_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
PMC * const signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));

Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);

if (PMC_IS_NULL(method_pmc)) {
PMC * const _class = VTABLE_get_class(interp, object);
if (PMC_IS_NULL(_class)) {
Expand Down Expand Up @@ -18671,6 +18675,8 @@ Parrot_callmethodcc_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
PMC * signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));

Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);

if (!PMC_IS_NULL(signature))
Parrot_pcc_set_object(interp, signature, PREG(1));
interp->current_cont = NEED_CONTINUATION;
Expand All @@ -18689,6 +18695,7 @@ Parrot_callmethod_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
PMC * signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));

Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);

if (PMC_IS_NULL(method_pmc)) {
dest = Parrot_ex_throw_from_op_args(interp, next, EXCEPTION_METHOD_NOT_FOUND,
Expand All @@ -18715,6 +18722,7 @@ Parrot_callmethod_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
PMC * signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));

Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);

if (PMC_IS_NULL(method_pmc)) {
dest = Parrot_ex_throw_from_op_args(interp, next, EXCEPTION_METHOD_NOT_FOUND,
Expand All @@ -18740,6 +18748,8 @@ Parrot_callmethod_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
PMC * signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));

Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);

if (!PMC_IS_NULL(signature))
Parrot_pcc_set_object(interp, signature, object);
interp->current_cont = PREG(3);
Expand Down
7 changes: 7 additions & 0 deletions src/ops/object.ops
Expand Up @@ -56,6 +56,8 @@ op callmethodcc(invar PMC, in STR) :object_base :flow {
PMC * const signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));

Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);

if (PMC_IS_NULL(method_pmc)) {
PMC * const _class = VTABLE_get_class(interp, object);
if (PMC_IS_NULL(_class)) {
Expand Down Expand Up @@ -85,6 +87,8 @@ op callmethodcc(invar PMC, invar PMC) :object_base :flow {
PMC * signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));

Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);

if (!PMC_IS_NULL(signature))
Parrot_pcc_set_object(interp, signature, $1);
interp->current_cont = NEED_CONTINUATION;
Expand All @@ -103,6 +107,7 @@ op callmethod(invar PMC, in STR, invar PMC) :object_base :flow {
PMC * signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));

Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);

if (PMC_IS_NULL(method_pmc)) {
dest = Parrot_ex_throw_from_op_args(interp, next, EXCEPTION_METHOD_NOT_FOUND,
Expand All @@ -127,6 +132,8 @@ op callmethod(invar PMC, invar PMC, invar PMC) :object_base :flow {
PMC * signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));

Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);

if (!PMC_IS_NULL(signature))
Parrot_pcc_set_object(interp, signature, object);
interp->current_cont = $3;
Expand Down

0 comments on commit b5aef79

Please sign in to comment.