diff --git a/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp b/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp
index c6f1e00..0556cd1 100644
--- a/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp
+++ b/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp
@@ -329,11 +329,9 @@
 
 }  // namespace
 
-struct CXFA_ViewRecord {
-  RetainPtr<CXFA_ViewLayoutItem> pCurPageSet;
-  RetainPtr<CXFA_ViewLayoutItem> pCurPageArea;
-  RetainPtr<CXFA_ViewLayoutItem> pCurContentArea;
-};
+CXFA_ViewLayoutProcessor::CXFA_ViewRecord::CXFA_ViewRecord() = default;
+
+CXFA_ViewLayoutProcessor::CXFA_ViewRecord::~CXFA_ViewRecord() = default;
 
 CXFA_ViewLayoutProcessor::CXFA_ViewLayoutProcessor(
     CXFA_LayoutProcessor* pLayoutProcessor)
@@ -564,15 +562,16 @@
   return FLT_MAX;
 }
 
-CXFA_ViewRecord* CXFA_ViewLayoutProcessor::AppendNewRecord(
+CXFA_ViewLayoutProcessor::CXFA_ViewRecord*
+CXFA_ViewLayoutProcessor::AppendNewRecord(
     std::unique_ptr<CXFA_ViewRecord> pNewRecord) {
   m_ProposedViewRecords.push_back(std::move(pNewRecord));
   return m_ProposedViewRecords.back().get();
 }
 
-CXFA_ViewRecord* CXFA_ViewLayoutProcessor::CreateViewRecord(
-    CXFA_Node* pPageNode,
-    bool bCreateNew) {
+CXFA_ViewLayoutProcessor::CXFA_ViewRecord*
+CXFA_ViewLayoutProcessor::CreateViewRecord(CXFA_Node* pPageNode,
+                                           bool bCreateNew) {
   ASSERT(pPageNode);
   auto pNewRecord = pdfium::MakeUnique<CXFA_ViewRecord>();
   if (!HasCurrentViewRecord()) {
@@ -637,7 +636,8 @@
   return AppendNewRecord(std::move(pNewRecord));
 }
 
-CXFA_ViewRecord* CXFA_ViewLayoutProcessor::CreateViewRecordSimple() {
+CXFA_ViewLayoutProcessor::CXFA_ViewRecord*
+CXFA_ViewLayoutProcessor::CreateViewRecordSimple() {
   auto pNewRecord = pdfium::MakeUnique<CXFA_ViewRecord>();
   if (HasCurrentViewRecord())
     *pNewRecord = *GetCurrentViewRecord();
diff --git a/xfa/fxfa/layout/cxfa_viewlayoutprocessor.h b/xfa/fxfa/layout/cxfa_viewlayoutprocessor.h
index ec7778e..0f4b351 100644
--- a/xfa/fxfa/layout/cxfa_viewlayoutprocessor.h
+++ b/xfa/fxfa/layout/cxfa_viewlayoutprocessor.h
@@ -19,7 +19,6 @@
 
 class CXFA_LayoutItem;
 class CXFA_Node;
-struct CXFA_ViewRecord;
 
 class CXFA_ViewLayoutProcessor {
  public:
@@ -61,6 +60,15 @@
   CXFA_Node* ProcessBookendTrailer(const CXFA_Node* pBookendNode);
 
  private:
+  struct CXFA_ViewRecord {
+    CXFA_ViewRecord();
+    ~CXFA_ViewRecord();
+
+    RetainPtr<CXFA_ViewLayoutItem> pCurPageSet;
+    RetainPtr<CXFA_ViewLayoutItem> pCurPageArea;
+    RetainPtr<CXFA_ViewLayoutItem> pCurContentArea;
+  };
+
   using RecordList = std::list<std::unique_ptr<CXFA_ViewRecord>>;
 
   bool AppendNewPage(bool bFirstTemPage);
