Given you changed this to be a vector of pointers I was expecting we would need some explicit code somewhere to make sure we always free off the AsInvocation structures within the list - otherwise we will leak memory.  I can't see any such change in this check-in, so you need to check it is being freed somewhere.

I would consider going back and making this a std::vector<AsInvocation> as that gets rid of any potential for leaks at the cost of a bit of copying of the structure - but copying of strings is generally very efficient in C++ because most implementations use "copy-on-write" to avoid actually having to copy the string data.