diff --git a/src/runtime/minrpc/minrpc_server.h b/src/runtime/minrpc/minrpc_server.h index 96a4dbce79cd3..fce57f104e138 100644 --- a/src/runtime/minrpc/minrpc_server.h +++ b/src/runtime/minrpc/minrpc_server.h @@ -344,6 +344,8 @@ class MinRPCExecute : public MinRPCExecInterface { call_ecode = TVMArrayFree(static_cast(handle)); } else if (type_code == kTVMPackedFuncHandle) { call_ecode = TVMFuncFree(handle); + } else if (type_code == kTVMObjectHandle) { + call_ecode = TVMObjectFree(handle); } else { MINRPC_CHECK(type_code == kTVMModuleHandle); call_ecode = TVMModFree(handle); diff --git a/tests/python/runtime/test_runtime_rpc.py b/tests/python/runtime/test_runtime_rpc.py index 2cdbb248cfd91..4963124b6224d 100644 --- a/tests/python/runtime/test_runtime_rpc.py +++ b/tests/python/runtime/test_runtime_rpc.py @@ -447,6 +447,10 @@ def check(client, is_local): assert get_elem(shape, 0) == 2 assert get_elem(shape, 1) == 3 assert get_size(shape) == 2 + # Test free object by assigning to the same variable + shape = make_shape(0) + assert get_size(shape) == 1 + assert get_elem(shape, 0) == 0 # start server