diff --git a/fpdfsdk/fpdf_thumbnail.cpp b/fpdfsdk/fpdf_thumbnail.cpp
index 4fb7965..547c7b0 100644
--- a/fpdfsdk/fpdf_thumbnail.cpp
+++ b/fpdfsdk/fpdf_thumbnail.cpp
@@ -21,12 +21,14 @@
 
 RetainPtr<const CPDF_Stream> CPDFStreamForThumbnailFromPage(FPDF_PAGE page) {
   const CPDF_Page* pdf_page = CPDFPageFromFPDFPage(page);
-  if (!pdf_page)
+  if (!pdf_page) {
     return nullptr;
+  }
 
   RetainPtr<const CPDF_Dictionary> page_dict = pdf_page->GetDict();
-  if (!page_dict->KeyExist("Type"))
+  if (!page_dict->KeyExist("Type")) {
     return nullptr;
+  }
 
   return page_dict->GetStreamFor("Thumb");
 }
@@ -39,8 +41,9 @@
                                  unsigned long buflen) {
   RetainPtr<const CPDF_Stream> thumb_stream =
       CPDFStreamForThumbnailFromPage(page);
-  if (!thumb_stream)
+  if (!thumb_stream) {
     return 0u;
+  }
 
   // SAFETY: caller ensures `buffer` points to at least `buflen` bytes.
   return DecodeStreamMaybeCopyAndReturnLength(
@@ -55,8 +58,9 @@
                              unsigned long buflen) {
   RetainPtr<const CPDF_Stream> thumb_stream =
       CPDFStreamForThumbnailFromPage(page);
-  if (!thumb_stream)
+  if (!thumb_stream) {
     return 0u;
+  }
 
   // SAFETY: caller ensures `buffer` points to at least `buflen` bytes.
   return GetRawStreamMaybeCopyAndReturnLength(
@@ -69,8 +73,9 @@
 FPDFPage_GetThumbnailAsBitmap(FPDF_PAGE page) {
   RetainPtr<const CPDF_Stream> thumb_stream =
       CPDFStreamForThumbnailFromPage(page);
-  if (!thumb_stream)
+  if (!thumb_stream) {
     return nullptr;
+  }
 
   const CPDF_Page* pdf_page = CPDFPageFromFPDFPage(page);
   auto dib_source = pdfium::MakeRetain<CPDF_DIB>(pdf_page->GetDocument(),
@@ -78,8 +83,9 @@
   const CPDF_DIB::LoadState start_status = dib_source->StartLoadDIBBase(
       false, nullptr, pdf_page->GetPageResources().Get(), false,
       CPDF_ColorSpace::Family::kUnknown, false, {0, 0});
-  if (start_status == CPDF_DIB::LoadState::kFail)
+  if (start_status == CPDF_DIB::LoadState::kFail) {
     return nullptr;
+  }
 
   auto thumb_bitmap = pdfium::MakeRetain<CFX_DIBitmap>();
   if (!thumb_bitmap->Copy(std::move(dib_source))) {
