fix dealloc bug