QDBusConnection: Print error from prepareHook
When the operation fails we print a warning, but that warning does not include the error message that prepareHook internally collects but ignores. Printing the error is useful for debugging. Pick-to: 6.6 Change-Id: I946c4781942115a17ffd43a79bff7676b6674be1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>bb10
parent
2fd4a86dc5
commit
b2e5f70490
|
|
@ -320,11 +320,10 @@ public:
|
|||
static int findSlot(QObject *obj, const QByteArray &normalizedName, QList<QMetaType> ¶ms,
|
||||
QString &errorMsg);
|
||||
static bool prepareHook(QDBusConnectionPrivate::SignalHook &hook, QString &key,
|
||||
const QString &service,
|
||||
const QString &path, const QString &interface, const QString &name,
|
||||
const ArgMatchRules &argMatch,
|
||||
QObject *receiver, const char *signal, int minMIdx,
|
||||
bool buildSignature);
|
||||
const QString &service, const QString &path, const QString &interface,
|
||||
const QString &name, const ArgMatchRules &argMatch, QObject *receiver,
|
||||
const char *signal, int minMIdx, bool buildSignature,
|
||||
QString &errorMsg);
|
||||
static QDBusCallDeliveryEvent *prepareReply(QDBusConnectionPrivate *target, QObject *object,
|
||||
int idx, const QList<QMetaType> &metaTypes,
|
||||
const QDBusMessage &msg);
|
||||
|
|
|
|||
|
|
@ -1304,14 +1304,13 @@ int QDBusConnectionPrivate::findSlot(QObject *obj, const QByteArray &normalizedN
|
|||
}
|
||||
|
||||
bool QDBusConnectionPrivate::prepareHook(QDBusConnectionPrivate::SignalHook &hook, QString &key,
|
||||
const QString &service,
|
||||
const QString &path, const QString &interface, const QString &name,
|
||||
const ArgMatchRules &argMatch,
|
||||
QObject *receiver, const char *signal, int minMIdx,
|
||||
bool buildSignature)
|
||||
const QString &service, const QString &path,
|
||||
const QString &interface, const QString &name,
|
||||
const ArgMatchRules &argMatch, QObject *receiver,
|
||||
const char *signal, int minMIdx, bool buildSignature,
|
||||
QString &errorMsg)
|
||||
{
|
||||
QByteArray normalizedName = signal + 1;
|
||||
QString errorMsg;
|
||||
hook.midx = findSlot(receiver, signal + 1, hook.params, errorMsg);
|
||||
if (hook.midx == -1) {
|
||||
normalizedName = QMetaObject::normalizedSignature(signal + 1);
|
||||
|
|
@ -2225,9 +2224,11 @@ bool QDBusConnectionPrivate::connectSignal(const QString &service,
|
|||
QString key;
|
||||
|
||||
hook.signature = signature;
|
||||
QString errorMsg;
|
||||
if (!prepareHook(hook, key, service, path, interface, name, argumentMatch, receiver, slot, 0,
|
||||
false)) {
|
||||
qCWarning(dbusIntegration) << "Could not connect" << interface << "to" << slot + 1;
|
||||
false, errorMsg)) {
|
||||
qCWarning(dbusIntegration)
|
||||
<< "Could not connect" << interface << "to" << slot + 1 << ":" << qPrintable(errorMsg);
|
||||
return false; // don't connect
|
||||
}
|
||||
|
||||
|
|
@ -2328,9 +2329,11 @@ bool QDBusConnectionPrivate::disconnectSignal(const QString &service,
|
|||
name2.detach();
|
||||
|
||||
hook.signature = signature;
|
||||
QString errorMsg;
|
||||
if (!prepareHook(hook, key, service, path, interface, name, argumentMatch, receiver, slot, 0,
|
||||
false)) {
|
||||
qCWarning(dbusIntegration) << "Could not disconnect" << interface << "to" << slot + 1;
|
||||
false, errorMsg)) {
|
||||
qCWarning(dbusIntegration)
|
||||
<< "Could not disconnect" << interface << "to" << slot + 1 << ":" << qPrintable(errorMsg);
|
||||
return false; // don't disconnect
|
||||
}
|
||||
|
||||
|
|
@ -2470,9 +2473,11 @@ void QDBusConnectionPrivate::connectRelay(const QString &service,
|
|||
QByteArray sig;
|
||||
sig.append(QSIGNAL_CODE + '0');
|
||||
sig.append(signal.methodSignature());
|
||||
QString errorMsg;
|
||||
if (!prepareHook(hook, key, service, path, interface, QString(), ArgMatchRules(), receiver, sig,
|
||||
QDBusAbstractInterface::staticMetaObject.methodCount(), true)) {
|
||||
qCWarning(dbusIntegration) << "Could not connect" << interface << "to" << signal.name();
|
||||
QDBusAbstractInterface::staticMetaObject.methodCount(), true, errorMsg)) {
|
||||
qCWarning(dbusIntegration)
|
||||
<< "Could not connect" << interface << "to" << signal.name() << ":" << qPrintable(errorMsg);
|
||||
return; // don't connect
|
||||
}
|
||||
|
||||
|
|
@ -2493,10 +2498,11 @@ void QDBusConnectionPrivate::disconnectRelay(const QString &service,
|
|||
QByteArray sig;
|
||||
sig.append(QSIGNAL_CODE + '0');
|
||||
sig.append(signal.methodSignature());
|
||||
QString errorMsg;
|
||||
if (!prepareHook(hook, key, service, path, interface, QString(), ArgMatchRules(), receiver, sig,
|
||||
QDBusAbstractInterface::staticMetaObject.methodCount(), true)) {
|
||||
qCWarning(dbusIntegration)
|
||||
<< "Could not disconnect" << interface << "to" << signal.methodSignature();
|
||||
QDBusAbstractInterface::staticMetaObject.methodCount(), true, errorMsg)) {
|
||||
qCWarning(dbusIntegration) << "Could not disconnect" << interface << "to"
|
||||
<< signal.methodSignature() << ":" << qPrintable(errorMsg);
|
||||
return; // don't disconnect
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue