diff --git a/fpdfsdk/cpdfsdk_helpers.cpp b/fpdfsdk/cpdfsdk_helpers.cpp
index 526b262..4583e0c 100644
--- a/fpdfsdk/cpdfsdk_helpers.cpp
+++ b/fpdfsdk/cpdfsdk_helpers.cpp
@@ -263,13 +263,8 @@
   return CFX_Matrix(matrix.a, matrix.b, matrix.c, matrix.d, matrix.e, matrix.f);
 }
 
-void FSMatrixFromCFXMatrix(const CFX_Matrix& matrix, FS_MATRIX* out_matrix) {
-  out_matrix->a = matrix.a;
-  out_matrix->b = matrix.b;
-  out_matrix->c = matrix.c;
-  out_matrix->d = matrix.d;
-  out_matrix->e = matrix.e;
-  out_matrix->f = matrix.f;
+FS_MATRIX FSMatrixFromCFXMatrix(const CFX_Matrix& matrix) {
+  return {matrix.a, matrix.b, matrix.c, matrix.d, matrix.e, matrix.f};
 }
 
 unsigned long Utf16EncodeMaybeCopyAndReturnLength(const WideString& text,
diff --git a/fpdfsdk/cpdfsdk_helpers.h b/fpdfsdk/cpdfsdk_helpers.h
index 6ba7fe1..9e2cb32 100644
--- a/fpdfsdk/cpdfsdk_helpers.h
+++ b/fpdfsdk/cpdfsdk_helpers.h
@@ -238,7 +238,7 @@
 FS_RECTF FSRectFFromCFXFloatRect(const CFX_FloatRect& rect);
 
 CFX_Matrix CFXMatrixFromFSMatrix(const FS_MATRIX& matrix);
-void FSMatrixFromCFXMatrix(const CFX_Matrix& matrix, FS_MATRIX* out_matrix);
+FS_MATRIX FSMatrixFromCFXMatrix(const CFX_Matrix& matrix);
 
 unsigned long Utf16EncodeMaybeCopyAndReturnLength(const WideString& text,
                                                   void* buffer,
diff --git a/fpdfsdk/fpdf_editpage.cpp b/fpdfsdk/fpdf_editpage.cpp
index 5f64700..8e979e0 100644
--- a/fpdfsdk/fpdf_editpage.cpp
+++ b/fpdfsdk/fpdf_editpage.cpp
@@ -864,6 +864,6 @@
   if (!pFormObj || !matrix)
     return false;
 
-  FSMatrixFromCFXMatrix(pFormObj->form_matrix(), matrix);
+  *matrix = FSMatrixFromCFXMatrix(pFormObj->form_matrix());
   return true;
 }
diff --git a/fpdfsdk/fpdf_editpath.cpp b/fpdfsdk/fpdf_editpath.cpp
index 5d5b6b7..aaa4b72 100644
--- a/fpdfsdk/fpdf_editpath.cpp
+++ b/fpdfsdk/fpdf_editpath.cpp
@@ -190,7 +190,7 @@
   if (!pPathObj)
     return false;
 
-  FSMatrixFromCFXMatrix(pPathObj->matrix(), matrix);
+  *matrix = FSMatrixFromCFXMatrix(pPathObj->matrix());
   return true;
 }
 
diff --git a/fpdfsdk/fpdf_edittext.cpp b/fpdfsdk/fpdf_edittext.cpp
index dc11ab2..a3b4208 100644
--- a/fpdfsdk/fpdf_edittext.cpp
+++ b/fpdfsdk/fpdf_edittext.cpp
@@ -526,7 +526,7 @@
   if (!pTextObj)
     return false;
 
-  FSMatrixFromCFXMatrix(pTextObj->GetTextMatrix(), matrix);
+  *matrix = FSMatrixFromCFXMatrix(pTextObj->GetTextMatrix());
   return true;
 }
 
