object_index_no_free*() will add a reference for the item on the stack, so you need to free the svalue afterwards, which is conveniently done by pop_stack(). There is no difference between your two snippets; object_index_no_free*() adds a ref, so you need to subtract it when you're done.