diff --git a/core/fpdfdoc/cpdf_structelement.cpp b/core/fpdfdoc/cpdf_structelement.cpp
index 40477b4..3afa094 100644
--- a/core/fpdfdoc/cpdf_structelement.cpp
+++ b/core/fpdfdoc/cpdf_structelement.cpp
@@ -19,7 +19,7 @@
 
 namespace {
 
-ByteString GetStructElementType(CPDF_StructTree* pTree,
+ByteString GetStructElementType(const CPDF_StructTree* pTree,
                                 const CPDF_Dictionary* pDict) {
   ByteString type = pDict->GetStringFor("S");
   if (pTree->GetRoleMap()) {
@@ -78,10 +78,10 @@
   if (!pKids)
     return;
 
-  m_Kids.clear();
+  ASSERT(m_Kids.empty());
   if (const CPDF_Array* pArray = pKids->AsArray()) {
     m_Kids.resize(pArray->size());
-    for (uint32_t i = 0; i < pArray->size(); i++) {
+    for (size_t i = 0; i < pArray->size(); ++i) {
       const CPDF_Object* pKid = pArray->GetDirectObjectAt(i);
       LoadKid(PageObjNum, pKid, &m_Kids[i]);
     }
@@ -95,7 +95,6 @@
 void CPDF_StructElement::LoadKid(uint32_t PageObjNum,
                                  const CPDF_Object* pKidObj,
                                  CPDF_StructKid* pKid) {
-  pKid->m_Type = CPDF_StructKid::kInvalid;
   if (!pKidObj)
     return;
 
@@ -140,5 +139,4 @@
 
   pKid->m_Type = CPDF_StructKid::kElement;
   pKid->m_pDict.Reset(pKidDict);
-  pKid->m_pElement = nullptr;
 }
diff --git a/fpdfsdk/fpdf_structtree.cpp b/fpdfsdk/fpdf_structtree.cpp
index e6d92df..2c5c6e3 100644
--- a/fpdfsdk/fpdf_structtree.cpp
+++ b/fpdfsdk/fpdf_structtree.cpp
@@ -126,6 +126,5 @@
   if (!elem || index < 0 || static_cast<size_t>(index) >= elem->CountKids())
     return nullptr;
 
-  return FPDFStructElementFromCPDFStructElement(
-      elem->GetKidIfElement(static_cast<size_t>(index)));
+  return FPDFStructElementFromCPDFStructElement(elem->GetKidIfElement(index));
 }
