In your example, do "key" and "v.key" refer to the same Lua object, or
merely to the same C++ object? That is, did you call a C++ function
which returned a Lua wrapper for that object, and use that same wrapper
in both places? Or did you use two different Lua wrappers, e.g. the
return values from two different function calls?