Make platform-specific code in fx_stream.h more consistent.

With commit 251ae3b655f04afbe19fb0899c0abb310ac8a412, the Windows and
non-Windows code are starting to look similar in several places. Align
the two sides to follow the same patterns and share code when possible.

Change-Id: I788f4022128144df26d5ffead265c1d62e3ee2a8
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/52271
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fxcrt/fx_stream.cpp b/core/fxcrt/fx_stream.cpp
index 6f30521..c02bbce 100644
--- a/core/fxcrt/fx_stream.cpp
+++ b/core/fxcrt/fx_stream.cpp
@@ -18,11 +18,21 @@
 #if _FX_PLATFORM_ == _FX_PLATFORM_WINDOWS_
 #include <direct.h>
 
-struct CFindFileDataA {
+struct FX_FolderHandle {
   HANDLE m_Handle;
   bool m_bEnd;
   WIN32_FIND_DATAA m_FindData;
 };
+#else
+#include <dirent.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+struct FX_FolderHandle {
+  ByteString m_Path;
+  DIR* m_Dir;
+};
 #endif  // _FX_PLATFORM_ == _FX_PLATFORM_WINDOWS_
 
 namespace {
@@ -112,25 +122,24 @@
 }
 
 FX_FolderHandle* FX_OpenFolder(const char* path) {
+  auto handle = pdfium::MakeUnique<FX_FolderHandle>();
 #if _FX_PLATFORM_ == _FX_PLATFORM_WINDOWS_
-  auto pData = pdfium::MakeUnique<CFindFileDataA>();
-  pData->m_Handle =
+  handle->m_Handle =
       FindFirstFileExA((ByteString(path) + "/*.*").c_str(), FindExInfoStandard,
-                       &pData->m_FindData, FindExSearchNameMatch, nullptr, 0);
-  if (pData->m_Handle == INVALID_HANDLE_VALUE)
+                       &handle->m_FindData, FindExSearchNameMatch, nullptr, 0);
+  if (handle->m_Handle == INVALID_HANDLE_VALUE)
     return nullptr;
 
-  pData->m_bEnd = false;
-  return pData.release();
+  handle->m_bEnd = false;
 #else
   DIR* dir = opendir(path);
   if (!dir)
     return nullptr;
-  auto handle = pdfium::MakeUnique<FX_FolderHandle>();
+
   handle->m_Path = path;
   handle->m_Dir = dir;
-  return handle.release();
 #endif
+  return handle.release();
 }
 
 bool FX_GetNextFile(FX_FolderHandle* handle,
diff --git a/core/fxcrt/fx_stream.h b/core/fxcrt/fx_stream.h
index 8ce75fd..81d010c 100644
--- a/core/fxcrt/fx_stream.h
+++ b/core/fxcrt/fx_stream.h
@@ -11,24 +11,7 @@
 #include "core/fxcrt/fx_system.h"
 #include "core/fxcrt/retain_ptr.h"
 
-#if _FX_PLATFORM_ == _FX_PLATFORM_WINDOWS_
-
-struct CFindFileDataA;
-typedef CFindFileDataA FX_FolderHandle;
-
-#else  // _FX_PLATFORM_ == _FX_PLATFORM_WINDOWS_
-
-#include <dirent.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-struct FX_FolderHandle {
-  ByteString m_Path;
-  DIR* m_Dir;
-};
-
-#endif  // _FX_PLATFORM_ == _FX_PLATFORM_WINDOWS_
+struct FX_FolderHandle;
 
 FX_FolderHandle* FX_OpenFolder(const char* path);
 bool FX_GetNextFile(FX_FolderHandle* handle,