[MDEV-23157] Remove redundant virtual Protocol::store() Created: 2020-07-13  Updated: 2020-07-14  Resolved: 2020-07-14

Status: Closed
Project: MariaDB Server
Component/s: Character Sets, Protocol
Fix Version/s: 10.5.5

Type: Task Priority: Major
Reporter: Alexander Barkov Assignee: Alexander Barkov
Resolution: Fixed Votes: 0
Labels: None


 Description   

The Protocol class has two similar virtual methods to send string data:

class Protocol
{
  ...
  virtual bool store(const char *from, size_t length, CHARSET_INFO *cs);
  virtual bool store(const char *from, size_t length,
                    CHARSET_INFO *fromcs, CHARSET_INFO *tocs);
  ...
};

Both call store_string_aux() internally.

The first method does not need to be virtual. Let's define it to be non-virtual, as follows:

class Protocol
{
  ...
  bool store(const char *from, size_t length, CHARSET_INFO *cs)
  {
    CHARSET_INFO *tocs= thd->variables.character_set_results;
    return store(from, length, fromcs, tocs);
  }
  virtual bool store(const char *from, size_t length,
                    CHARSET_INFO *fromcs, CHARSET_INFO *tocs);
  ..
};


Generated at Thu Feb 08 09:20:17 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.