mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
refactor(core): Remove length parameter from splitMessages
* From the archeology I managed, MAX_GROUP_MESSAGE_LEN was a workaround for an old toxcore bug. Testing removal of this parameter and replacing it with tox_max_message_length() seems to work fine.
This commit is contained in:
parent
22a4c38bfd
commit
3fd4ce5952
|
@ -44,8 +44,6 @@
|
|||
|
||||
const QString Core::TOX_EXT = ".tox";
|
||||
|
||||
#define MAX_GROUP_MESSAGE_LEN 1024
|
||||
|
||||
#define ASSERT_CORE_THREAD assert(QThread::currentThread() == coreThread.get())
|
||||
|
||||
namespace {
|
||||
|
@ -715,10 +713,15 @@ void Core::sendGroupMessageWithType(int groupId, const QString& message, Tox_Mes
|
|||
{
|
||||
QMutexLocker ml{&coreLoopLock};
|
||||
|
||||
QStringList cMessages = splitMessage(message, MAX_GROUP_MESSAGE_LEN);
|
||||
int size = message.toUtf8().size();
|
||||
auto maxSize = tox_max_message_length();
|
||||
if (size > maxSize) {
|
||||
qCritical() << "Core::sendMessageWithType called with message of size:" << size
|
||||
<< "when max is:" << maxSize << ". Ignoring.";
|
||||
return;
|
||||
}
|
||||
|
||||
for (auto& part : cMessages) {
|
||||
ToxString cMsg(part);
|
||||
ToxString cMsg(message);
|
||||
Tox_Err_Conference_Send_Message error;
|
||||
bool ok =
|
||||
tox_conference_send_message(tox.get(), groupId, type, cMsg.data(), cMsg.size(), &error);
|
||||
|
@ -727,7 +730,6 @@ void Core::sendGroupMessageWithType(int groupId, const QString& message, Tox_Mes
|
|||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Core::sendGroupMessage(int groupId, const QString& message)
|
||||
{
|
||||
|
@ -1434,11 +1436,13 @@ QString Core::getFriendUsername(uint32_t friendnumber) const
|
|||
return sname.getQString();
|
||||
}
|
||||
|
||||
QStringList Core::splitMessage(const QString& message, int maxLen)
|
||||
QStringList Core::splitMessage(const QString& message)
|
||||
{
|
||||
QStringList splittedMsgs;
|
||||
QByteArray ba_message{message.toUtf8()};
|
||||
|
||||
const auto maxLen = tox_max_message_length();
|
||||
|
||||
while (ba_message.size() > maxLen) {
|
||||
int splitPos = ba_message.lastIndexOf('\n', maxLen - 1);
|
||||
|
||||
|
|
|
@ -71,7 +71,7 @@ public:
|
|||
~Core();
|
||||
|
||||
static const QString TOX_EXT;
|
||||
static QStringList splitMessage(const QString& message, int maxLen);
|
||||
static QStringList splitMessage(const QString& message);
|
||||
QString getPeerName(const ToxPk& id) const;
|
||||
QVector<uint32_t> getFriendList() const;
|
||||
GroupId getGroupPersistentId(uint32_t groupNumber) const;
|
||||
|
|
|
@ -24,7 +24,7 @@ std::vector<Message> processOutgoingMessage(bool isAction, const QString& conten
|
|||
{
|
||||
std::vector<Message> ret;
|
||||
|
||||
QStringList splitMsgs = Core::splitMessage(content, tox_max_message_length());
|
||||
QStringList splitMsgs = Core::splitMessage(content);
|
||||
ret.reserve(splitMsgs.size());
|
||||
|
||||
QDateTime timestamp = QDateTime::currentDateTime();
|
||||
|
|
Loading…
Reference in New Issue
Block a user