diff --git a/core/fpdfapi/render/cpdf_renderoptions.h b/core/fpdfapi/render/cpdf_renderoptions.h
index fd17a82..b1b8aa8 100644
--- a/core/fpdfapi/render/cpdf_renderoptions.h
+++ b/core/fpdfapi/render/cpdf_renderoptions.h
@@ -29,8 +29,6 @@
     bool bNoNativeText = false;
     bool bForceHalftone = false;
     bool bRectAA = false;
-    bool bFillFullcover = false;
-    bool bThinLine = false;
     bool bBreakForMasks = false;
     bool bNoTextSmooth = false;
     bool bNoPathSmooth = false;
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index 6461598..3375924 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -124,8 +124,6 @@
   int fill_options = fill_type;
   if (fill_type && options.bRectAA)
     fill_options |= FXFILL_RECT_AA;
-  if (options.bFillFullcover)
-    fill_options |= FXFILL_FULLCOVER;
   if (options.bNoPathSmooth)
     fill_options |= FXFILL_NOPATHSMOOTH;
   if (path_obj->m_GeneralState.GetStrokeAdjust())
@@ -447,12 +445,10 @@
 
   int fill_options = GetFillRenderOptionsHelper(options, pPathObj, FillType,
                                                 bStroke, m_pType3Char);
-  CFX_GraphState graphState = pPathObj->m_GraphState;
-  if (m_Options.GetOptions().bThinLine)
-    graphState.SetLineWidth(0);
   return m_pDevice->DrawPathWithBlend(
-      pPathObj->path().GetObject(), &path_matrix, graphState.GetObject(),
-      fill_argb, stroke_argb, fill_options, m_curBlend);
+      pPathObj->path().GetObject(), &path_matrix,
+      pPathObj->m_GraphState.GetObject(), fill_argb, stroke_argb, fill_options,
+      m_curBlend);
 }
 
 RetainPtr<CPDF_TransferFunc> CPDF_RenderStatus::GetTransferFunc(
@@ -596,11 +592,9 @@
                                        bool bStroke) {
   CFX_Matrix path_matrix = pPathObj->matrix() * mtObj2Device;
   if (bStroke) {
-    CFX_GraphState graphState = pPathObj->m_GraphState;
-    if (m_Options.GetOptions().bThinLine)
-      graphState.SetLineWidth(0);
     return m_pDevice->SetClip_PathStroke(pPathObj->path().GetObject(),
-                                         &path_matrix, graphState.GetObject());
+                                         &path_matrix,
+                                         pPathObj->m_GraphState.GetObject());
   }
   int fill_mode = pPathObj->filltype();
   if (m_Options.GetOptions().bNoPathSmooth) {
