Can't we just pass `&opt` into the callback and then do `opt = *(git_hash_option_t *)p;`?