https://codereview.appspot.com/549890043/diff/579610043/lily/include/listener.hh File lily/include/listener.hh (left):
https://codereview.appspot.com/549890043/diff/579610043/lily/include/listener.hh#oldcode140 lily/include/listener.hh:140: #define GET_LISTENER(cl, proc) get_listener (Callback_wrapper::make_smob<Listener::trampoline<cl, &cl::proc> > ()) IMO, the problem is that the macro scopes 'proc' to come from 'cl', which is magical. Couldn't we change the calling convention to be ctx->GET_LISTENER(&SomeContext::func) if we call this from within a SomeContext method itself, it could be GET_LISTENER(&func) If so, would we need a macro at all? https://codereview.appspot.com/549890043/