diff --git a/fxbarcode/datamatrix/BC_DataMatrixWriter.cpp b/fxbarcode/datamatrix/BC_DataMatrixWriter.cpp
index 9f8b983..1d2b39e 100644
--- a/fxbarcode/datamatrix/BC_DataMatrixWriter.cpp
+++ b/fxbarcode/datamatrix/BC_DataMatrixWriter.cpp
@@ -111,7 +111,7 @@
                                                   int32_t* pOutWidth,
                                                   int32_t* pOutHeight) {
   std::vector<uint8_t> results;
-  WideString encoded = CBC_HighLevelEncoder::EncodeHighLevel(contents, false);
+  WideString encoded = CBC_HighLevelEncoder::EncodeHighLevel(contents);
   if (encoded.IsEmpty())
     return results;
 
diff --git a/fxbarcode/datamatrix/BC_EncoderContext.cpp b/fxbarcode/datamatrix/BC_EncoderContext.cpp
index 85b9324..3fbfee8 100644
--- a/fxbarcode/datamatrix/BC_EncoderContext.cpp
+++ b/fxbarcode/datamatrix/BC_EncoderContext.cpp
@@ -28,9 +28,7 @@
 #include "fxbarcode/datamatrix/BC_Encoder.h"
 #include "fxbarcode/datamatrix/BC_SymbolInfo.h"
 
-CBC_EncoderContext::CBC_EncoderContext(const WideString& msg,
-                                       bool bAllowRectangular)
-    : m_bAllowRectangular(bAllowRectangular) {
+CBC_EncoderContext::CBC_EncoderContext(const WideString& msg) {
   ByteString dststr = msg.ToUTF8();
   size_t c = dststr.GetLength();
   WideString sb;
diff --git a/fxbarcode/datamatrix/BC_EncoderContext.h b/fxbarcode/datamatrix/BC_EncoderContext.h
index b4cc2f6..e09b63a 100644
--- a/fxbarcode/datamatrix/BC_EncoderContext.h
+++ b/fxbarcode/datamatrix/BC_EncoderContext.h
@@ -15,8 +15,7 @@
 
 class CBC_EncoderContext {
  public:
-  CBC_EncoderContext(const WideString& msg,
-                     bool bAllowRectangular);
+  explicit CBC_EncoderContext(const WideString& msg);
   ~CBC_EncoderContext();
 
   void setSkipAtEnd(int32_t count);
@@ -47,7 +46,7 @@
  private:
   size_t getTotalMessageCharCount();
 
-  bool m_bAllowRectangular;  // Force square when false.
+  bool m_bAllowRectangular = false;  // Force square when false.
   bool m_bHasCharactersOutsideISO88591Encoding = false;
   size_t m_skipAtEnd = 0;
 };
diff --git a/fxbarcode/datamatrix/BC_HighLevelEncoder.cpp b/fxbarcode/datamatrix/BC_HighLevelEncoder.cpp
index 8b37c02..2731490 100644
--- a/fxbarcode/datamatrix/BC_HighLevelEncoder.cpp
+++ b/fxbarcode/datamatrix/BC_HighLevelEncoder.cpp
@@ -119,9 +119,8 @@
 }  // namespace
 
 // static
-WideString CBC_HighLevelEncoder::EncodeHighLevel(const WideString& msg,
-                                                 bool bAllowRectangular) {
-  CBC_EncoderContext context(msg, bAllowRectangular);
+WideString CBC_HighLevelEncoder::EncodeHighLevel(const WideString& msg) {
+  CBC_EncoderContext context(msg);
   if (context.HasCharactersOutsideISO88591Encoding())
     return WideString();
 
diff --git a/fxbarcode/datamatrix/BC_HighLevelEncoder.h b/fxbarcode/datamatrix/BC_HighLevelEncoder.h
index ed1608a..14f64e2 100644
--- a/fxbarcode/datamatrix/BC_HighLevelEncoder.h
+++ b/fxbarcode/datamatrix/BC_HighLevelEncoder.h
@@ -28,8 +28,7 @@
   ~CBC_HighLevelEncoder() = delete;
 
   // Returns an empty string on failure.
-  static WideString EncodeHighLevel(const WideString& msg,
-                                    bool bAllowRectangular);
+  static WideString EncodeHighLevel(const WideString& msg);
 
   static Encoding LookAheadTest(const WideString& msg,
                                 size_t startpos,
