OSDN Git Service

Fix 64-bit benchmark build
authorGreg Hackmann <ghackmann@google.com>
Fri, 20 Feb 2015 19:00:14 +0000 (11:00 -0800)
committerGreg Hackmann <ghackmann@google.com>
Fri, 20 Feb 2015 19:07:38 +0000 (11:07 -0800)
The * flag to printf() wants an int instead of size_t, and these are
distinct types on 64-bit.  To accomodate this, make the name column
width helpers return int.

In theory this truncates things, but in practice this only matters if
you have a benchmark with more than INT_MAX characters in its name (in
which case you have bigger problems).

Change-Id: I3338948c25a3a8d84f1ead2f5b457c05da8a01cf
Signed-off-by: Greg Hackmann <ghackmann@google.com>
benchmarks/Benchmark.cpp
benchmarks/benchmark/Benchmark.h

index 0eb779a..eea304f 100644 (file)
@@ -44,8 +44,8 @@ std::vector<Benchmark*>& Benchmark::List() {
   return list;
 }
 
-size_t Benchmark::MaxNameColumnWidth() {
-  size_t max = 20;
+int Benchmark::MaxNameColumnWidth() {
+  int max = 20;
   for (auto& benchmark : List()) {
     max = std::max(max, benchmark->NameColumnWidth());
   }
index 7c208e6..16ae5fa 100644 (file)
@@ -47,10 +47,10 @@ public:
 
   static std::vector<Benchmark*>& List();
 
-  static size_t MaxNameColumnWidth();
+  static int MaxNameColumnWidth();
 
 protected:
-  virtual size_t NameColumnWidth() = 0;
+  virtual int NameColumnWidth() = 0;
 
   uint64_t bytes_processed_;
   uint64_t total_time_ns_;
@@ -85,8 +85,8 @@ protected:
 
   virtual void Run(int) = 0;
 
-  virtual size_t NameColumnWidth() override {
-    return Name().size();
+  virtual int NameColumnWidth() override {
+    return (int)Name().size();
   }
 
   virtual std::string GetNameStr(void *) override;
@@ -104,10 +104,10 @@ public:
   }
 
 protected:
-  virtual size_t NameColumnWidth() override {
-    size_t max = 0;
+  virtual int NameColumnWidth() override {
+    int max = 0;
     for (const auto arg : args_) {
-      max = std::max(max, GetNameStr(arg).size());
+      max = std::max(max, (int)GetNameStr(arg).size());
     }
     return max;
   }