What is correct syntax for `uvm_do_callbacks?

Helllo!

I am currently on a verification training, and still learning about UVM and it’s possibilities.
I’ve been reading about callbacks (already read that these aren’t recommended), and one thing bothers me. There is an example on academy’s website in verification-methodology-reference. Macro’s signature is written like this:

`uvm_do_callbacks(T,CB,METHOD)

,
and then there is an example which I believe switches order of arguments, like this:

task mycomp::run_phase(uvm_phase phase);
   int curr_addr, curr_data;
   ...
   `uvm_do_callbacks(mycb, mycomp, my_function(this, curr_addr, curr_data))
   ...
endtask

If I am right, this macro should be invoked in component’s code (i.e. run phase), and first argument should be pointing to that component, that is keyword this.

I was just wondering if I understood this correctly.

Thank you in advance!

Please provide a direct link to the example in question.
Thanks

In reply to tfitz:

https://verificationacademy.com/verification-methodology-reference/uvm/docs_1.1c/html/files/macros/uvm_callback_defines-svh.html#`uvm_do_callbacks

Here it is, under the `uvm_do_callbacks section.

Actually, the example is part of the Accellera UVM Reference Guide, which we just include on Academy for convenience. You are apparently the first person to notice, since the problem persists through UVM1.2 and even into the reference implementation of 1800.2 (although not in the actual 1800.2 standard). I’ve notified the appropriate committee. Thanks for the heads up.
In the meantime, stick with using the component as the first argument.

In reply to tfitz:

I will, thank you!