[fix] fix bug calling destructor on nonexist object