This week's book giveaway is in the Mac OS forum. We're giving away four copies of a choice of "Take Control of Upgrading to Yosemite" or "Take Control of Automating Your Mac" and have Joe Kissell on-line! See this thread for details.
This question has nothing to do with garbage collection, it relates purely to parameter passing.
As s is passed by value, outside the function the reference to v still exists. As a result v will not be garbage collected at this point, but rather vh will be eligible for GC after the function terminates.