Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/source/lobby/XmppClient.cpp
Show First 20 Lines • Show All 730 Lines • ▼ Show 20 Lines | if (JS_StructuredClone(rq.cx, rootedMessage, &historicMessage, nullptr, nullptr)) | ||||
m_HistoricGuiMessages.push_back(JS::Heap<JS::Value>(historicMessage)); | m_HistoricGuiMessages.push_back(JS::Heap<JS::Value>(historicMessage)); | ||||
} | } | ||||
else | else | ||||
LOGERROR("Could not clone historic lobby GUI message!"); | LOGERROR("Could not clone historic lobby GUI message!"); | ||||
} | } | ||||
m_GuiMessageQueue.clear(); | m_GuiMessageQueue.clear(); | ||||
// Copy the messages over to the caller script interface. | // Copy the messages over to the caller script interface. | ||||
return scriptInterface.CloneValueFromOtherContext(*m_ScriptInterface, messages); | return scriptInterface.CloneValueFromOtherCompartment(*m_ScriptInterface, messages); | ||||
} | } | ||||
JS::Value XmppClient::GuiPollHistoricMessages(const ScriptInterface& scriptInterface) | JS::Value XmppClient::GuiPollHistoricMessages(const ScriptInterface& scriptInterface) | ||||
{ | { | ||||
if (m_HistoricGuiMessages.empty()) | if (m_HistoricGuiMessages.empty()) | ||||
return JS::UndefinedValue(); | return JS::UndefinedValue(); | ||||
ScriptInterface::Request rq(m_ScriptInterface); | ScriptInterface::Request rq(m_ScriptInterface); | ||||
JS::RootedValue messages(rq.cx); | JS::RootedValue messages(rq.cx); | ||||
ScriptInterface::CreateArray(rq, &messages); | ScriptInterface::CreateArray(rq, &messages); | ||||
int j = 0; | int j = 0; | ||||
for (const JS::Heap<JS::Value>& message : m_HistoricGuiMessages) | for (const JS::Heap<JS::Value>& message : m_HistoricGuiMessages) | ||||
m_ScriptInterface->SetPropertyInt(messages, j++, message); | m_ScriptInterface->SetPropertyInt(messages, j++, message); | ||||
// Copy the messages over to the caller script interface. | // Copy the messages over to the caller script interface. | ||||
return scriptInterface.CloneValueFromOtherContext(*m_ScriptInterface, messages); | return scriptInterface.CloneValueFromOtherCompartment(*m_ScriptInterface, messages); | ||||
} | } | ||||
/** | /** | ||||
* Send a standard MUC textual message. | * Send a standard MUC textual message. | ||||
*/ | */ | ||||
void XmppClient::SendMUCMessage(const std::string& message) | void XmppClient::SendMUCMessage(const std::string& message) | ||||
{ | { | ||||
m_mucRoom->send(message); | m_mucRoom->send(message); | ||||
▲ Show 20 Lines • Show All 611 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator