I probably should just have sent this to the list:
By the way, [FuncRequest::getArg()] is extremely inefficient. We have e.g. this
code in Buffer.cpp:
string target = func.getArg(0);
string target_name = func.getArg(1);
string command = func.getArg(2);
As a result, we parse the argument string three times! It seems to me
that we should either (a) expose a "getArgs" routine that returns a
vector<string> and let the caller extract them by position:
vector<string> args = func.getArgs();
string target = args[0];
etc;
or (b) cache the vector<string> in the FuncRequest object itself. The
latter wouldn't in fact require much memory, because these objects are
generally short-lived.
Opinions?
rh