+      // the argument specifies **byte size**, but m_buffer is of type
+      // wxChar. Under unicode: sizeof(wxChar) > 1, so the buffer size is
+      // bytes / sizeof(wxChar) rounded upwards.
+      m_buffer = new wxChar[(bytes + sizeof(wxChar) - 1) / sizeof(wxChar)];