void removePointer(@NotNull VirtualFilePointerImpl pointer) {
    FilePartNode node = pointer.myNode;
    int remainingLeaves = node.removeLeaf(pointer);
    if (remainingLeaves == 0) {
      VirtualFile file = myFile(node.myFileOrUrl);
      if (file == null) {
        removeEmptyNodesByPath(VfsUtilCore.urlToPath(myUrl(node.myFileOrUrl)));
      }
      else {
        List<VirtualFile> parts = getHierarchy(file);
        removeEmptyNodesByFile(parts);
      }
    }
  }
void removePointer(@NotNull VirtualFilePointerImpl pointer)