Do slightly fewer casts with FPDFBitmap_GetBuffer() result.

Leave it as a void* and only cast it when needed.

Change-Id: I9ffaaf992ccd963bc1ba541d249d4a56d626a44b
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/64072
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/samples/pdfium_test.cc b/samples/pdfium_test.cc
index c65490e..d38227d 100644
--- a/samples/pdfium_test.cc
+++ b/samples/pdfium_test.cc
@@ -218,10 +218,9 @@
   return static_cast<FPDF_FORMFILLINFO_PDFiumTest*>(form_fill_info);
 }
 
-void OutputMD5Hash(const char* file_name, const char* buffer, int len) {
+void OutputMD5Hash(const char* file_name, const uint8_t* buffer, int len) {
   // Get the MD5 hash and write it to stdout.
-  std::string hash =
-      GenerateMD5Base16(reinterpret_cast<const uint8_t*>(buffer), len);
+  std::string hash = GenerateMD5Base16(buffer, len);
   printf("MD5:%s:%s\n", file_name, hash.c_str());
 }
 
@@ -748,8 +747,7 @@
       FPDF_RenderPage_Close(page);
 
     int stride = FPDFBitmap_GetStride(bitmap.get());
-    const char* buffer =
-        reinterpret_cast<const char*>(FPDFBitmap_GetBuffer(bitmap.get()));
+    void* buffer = FPDFBitmap_GetBuffer(bitmap.get());
 
     std::string image_file_name;
     switch (options.output_format) {
@@ -801,8 +799,10 @@
 
     // Write the filename and the MD5 of the buffer to stdout if we wrote a
     // file.
-    if (options.md5 && !image_file_name.empty())
-      OutputMD5Hash(image_file_name.c_str(), buffer, stride * height);
+    if (options.md5 && !image_file_name.empty()) {
+      OutputMD5Hash(image_file_name.c_str(),
+                    static_cast<const uint8_t*>(buffer), stride * height);
+    }
   } else {
     fprintf(stderr, "Page was too large to be rendered.\n");
   }
diff --git a/samples/pdfium_test_write_helper.cc b/samples/pdfium_test_write_helper.cc
index 356bb08..b89b38a 100644
--- a/samples/pdfium_test_write_helper.cc
+++ b/samples/pdfium_test_write_helper.cc
@@ -179,12 +179,10 @@
 
 std::string WritePpm(const char* pdf_name,
                      int num,
-                     const void* buffer_void,
+                     void* buffer_void,
                      int stride,
                      int width,
                      int height) {
-  const auto* buffer = reinterpret_cast<const char*>(buffer_void);
-
   if (!CheckDimensions(stride, width, height))
     return "";
 
@@ -203,10 +201,11 @@
   fprintf(fp, "P6\n# PDF test render\n%d %d\n255\n", width, height);
   // Source data is B, G, R, unused.
   // Dest data is R, G, B.
-  std::vector<char> result(out_len);
+  const uint8_t* buffer = reinterpret_cast<const uint8_t*>(buffer_void);
+  std::vector<uint8_t> result(out_len);
   for (int h = 0; h < height; ++h) {
-    const char* src_line = buffer + (stride * h);
-    char* dest_line = result.data() + (width * h * 3);
+    const uint8_t* src_line = buffer + (stride * h);
+    uint8_t* dest_line = result.data() + (width * h * 3);
     for (int w = 0; w < width; ++w) {
       // R
       dest_line[w * 3] = src_line[(w * 4) + 2];
@@ -377,17 +376,16 @@
 
 std::string WritePng(const char* pdf_name,
                      int num,
-                     const void* buffer_void,
+                     void* buffer,
                      int stride,
                      int width,
                      int height) {
   if (!CheckDimensions(stride, width, height))
     return "";
 
-  const auto* buffer = static_cast<const unsigned char*>(buffer_void);
-
   std::vector<unsigned char> png_encoding =
-      EncodePng(buffer, width, height, stride, FPDFBitmap_BGRA);
+      EncodePng(static_cast<const unsigned char*>(buffer), width, height,
+                stride, FPDFBitmap_BGRA);
   if (png_encoding.empty()) {
     fprintf(stderr, "Failed to convert bitmap to PNG\n");
     return "";
@@ -420,7 +418,7 @@
 #ifdef _WIN32
 std::string WriteBmp(const char* pdf_name,
                      int num,
-                     const void* buffer,
+                     void* buffer,
                      int stride,
                      int width,
                      int height) {
diff --git a/samples/pdfium_test_write_helper.h b/samples/pdfium_test_write_helper.h
index f44c2e7..b53d555 100644
--- a/samples/pdfium_test_write_helper.h
+++ b/samples/pdfium_test_write_helper.h
@@ -16,7 +16,7 @@
 
 std::string WritePpm(const char* pdf_name,
                      int num,
-                     const void* buffer_void,
+                     void* buffer_void,
                      int stride,
                      int width,
                      int height);
@@ -24,7 +24,7 @@
 void WriteAnnot(FPDF_PAGE page, const char* pdf_name, int num);
 std::string WritePng(const char* pdf_name,
                      int num,
-                     const void* buffer_void,
+                     void* buffer,
                      int stride,
                      int width,
                      int height);
@@ -32,7 +32,7 @@
 #ifdef _WIN32
 std::string WriteBmp(const char* pdf_name,
                      int num,
-                     const void* buffer,
+                     void* buffer,
                      int stride,
                      int width,
                      int height);