Commit d7c05cb5 authored by Gerald Squelart's avatar Gerald Squelart
Browse files

Bug 1784812 - Make all JSONWriteFunc-derived classes and their overriden...

Bug 1784812 - Make all JSONWriteFunc-derived classes and their overriden methods final - r=canaltinova

All JSONWriteFuncs are effectively final, this patch enforces that, hopefully
helping the compiler to de-virtualize some calls.

Depends on D154618

Differential Revision: https://phabricator.services.mozilla.com/D154619
parent 253bb5dc
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -152,7 +152,7 @@ class TempFileWriter final : public mozilla::JSONWriteFunc {

  explicit operator bool() const { return !mFailed; }

  void Write(const mozilla::Span<const char>& aStr) override {
  void Write(const mozilla::Span<const char>& aStr) final {
    if (mFailed) {
      return;
    }
+2 −2
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ using namespace mozilla::dmd;

DMDFuncs::Singleton DMDFuncs::sSingleton;

class FpWriteFunc : public mozilla::JSONWriteFunc {
class FpWriteFunc final : public mozilla::JSONWriteFunc {
 public:
  explicit FpWriteFunc(const char* aFilename) {
    mFp = fopen(aFilename, "w");
@@ -45,7 +45,7 @@ class FpWriteFunc : public mozilla::JSONWriteFunc {

  ~FpWriteFunc() { fclose(mFp); }

  void Write(const mozilla::Span<const char>& aStr) override {
  void Write(const mozilla::Span<const char>& aStr) final {
    for (const char c : aStr) {
      fputc(c, mFp);
    }
+2 −2
Original line number Diff line number Diff line
@@ -18,10 +18,10 @@ using mozilla::MakeUnique;
using mozilla::Span;

// This writes all the output into a big buffer.
struct StringWriteFunc : public JSONWriteFunc {
struct StringWriteFunc final : public JSONWriteFunc {
  std::string mString;

  void Write(const mozilla::Span<const char>& aStr) override {
  void Write(const mozilla::Span<const char>& aStr) final {
    mString.append(aStr.data(), aStr.size());
  }
};
+2 −2
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ class ChunkedJSONWriteFunc final : public JSONWriteFunc {
    return totalLen;
  }

  void Write(const Span<const char>& aStr) override {
  void Write(const Span<const char>& aStr) final {
    MOZ_ASSERT(mChunkPtr >= mChunkList.back().get() && mChunkPtr <= mChunkEnd);
    MOZ_ASSERT(mChunkEnd >= mChunkList.back().get() + mChunkLengths.back());
    MOZ_ASSERT(*mChunkPtr == '\0');
@@ -151,7 +151,7 @@ class ChunkedJSONWriteFunc final : public JSONWriteFunc {
struct OStreamJSONWriteFunc final : public JSONWriteFunc {
  explicit OStreamJSONWriteFunc(std::ostream& aStream) : mStream(aStream) {}

  void Write(const Span<const char>& aStr) override {
  void Write(const Span<const char>& aStr) final {
    std::string_view sv(aStr.data(), aStr.size());
    mStream << sv;
  }
+2 −2
Original line number Diff line number Diff line
@@ -1146,10 +1146,10 @@ void TestLEB128() {
  printf("TestLEB128 done\n");
}

struct StringWriteFunc : public JSONWriteFunc {
struct StringWriteFunc final : public JSONWriteFunc {
  std::string mString;

  void Write(const mozilla::Span<const char>& aStr) override {
  void Write(const mozilla::Span<const char>& aStr) final {
    mString.append(aStr.data(), aStr.size());
  }
};
Loading