You can have pointers to the stack:
So the change is rather small: 
https://github.com/troyane/mixxx/blob/d945819b275c38b788bfb32e64e3051a295e18d7/src/library/dao/analysisdao.cpp#L49
return loadAnalysesFromQuery(trackId, query); 
becomes 
return loadAnalysesFromQuery(trackId, &query); 

The reader can instantly see that  loadAnalysesFromQuery may be a output parameter and "query" may change by the function call.

By the way: this is also a Google C++ rule we lean on:
http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml?showone=Reference_Arguments#Reference_Arguments