Changeset 769 for trunk/src/dbus/qdbuspendingcall.cpp
- Timestamp:
- Aug 2, 2010, 9:27:30 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/vendor/nokia/qt/4.6.3 (added) merged: 768 /branches/vendor/nokia/qt/current merged: 767 /branches/vendor/nokia/qt/4.6.2 removed
- Property svn:mergeinfo changed
-
trunk/src/dbus/qdbuspendingcall.cpp
r651 r769 209 209 void QDBusPendingCallPrivate::checkReceivedSignature() 210 210 { 211 // MUST BE CALLED WITH A LOCKED MUTEX! 212 211 213 if (replyMessage.type() == QDBusMessage::InvalidMessage) 212 214 return; // not yet finished - no message to … … 231 233 void QDBusPendingCallPrivate::waitForFinished() 232 234 { 235 QMutexLocker locker(&mutex); 236 233 237 if (replyMessage.type() != QDBusMessage::InvalidMessage) 234 238 return; // already finished … … 311 315 bool QDBusPendingCall::isFinished() const 312 316 { 313 return !d || (d->replyMessage.type() != QDBusMessage::InvalidMessage); 317 if (!d) 318 return true; // considered finished 319 320 QMutexLocker locker(&d->mutex); 321 return d->replyMessage.type() != QDBusMessage::InvalidMessage; 314 322 } 315 323 … … 330 338 bool QDBusPendingCall::isValid() const 331 339 { 332 return d ? d->replyMessage.type() == QDBusMessage::ReplyMessage : false; 340 if (!d) 341 return false; 342 QMutexLocker locker(&d->mutex); 343 return d->replyMessage.type() == QDBusMessage::ReplyMessage; 333 344 } 334 345 … … 344 355 bool QDBusPendingCall::isError() const 345 356 { 346 return d ? d->replyMessage.type() == QDBusMessage::ErrorMessage : true; 357 if (!d) 358 return true; // considered finished and an error 359 QMutexLocker locker(&d->mutex); 360 return d->replyMessage.type() == QDBusMessage::ErrorMessage; 347 361 } 348 362 … … 357 371 QDBusError QDBusPendingCall::error() const 358 372 { 359 if (d) 373 if (d) { 374 QMutexLocker locker(&d->mutex); 360 375 return d->replyMessage; 376 } 361 377 362 378 // not connected, return an error … … 379 395 QDBusMessage QDBusPendingCall::reply() const 380 396 { 381 return d ? d->replyMessage : QDBusMessage::createError(error()); 397 if (!d) 398 return QDBusMessage::createError(error()); 399 QMutexLocker locker(&d->mutex); 400 return d->replyMessage; 382 401 } 383 402 … … 440 459 if (msg.type() == QDBusMessage::ErrorMessage || 441 460 msg.type() == QDBusMessage::ReplyMessage) { 442 d = new QDBusPendingCallPrivate ;461 d = new QDBusPendingCallPrivate(QDBusMessage(), 0); 443 462 d->replyMessage = msg; 444 d->connection = 0;445 463 } 446 464 … … 472 490 { 473 491 if (d) { // QDBusPendingCall::d 492 QMutexLocker locker(&d->mutex); 474 493 if (!d->watcherHelper) { 475 494 d->watcherHelper = new QDBusPendingCallWatcherHelper; 476 if ( isFinished()) {495 if (d->replyMessage.type() != QDBusMessage::InvalidMessage) { 477 496 // cause a signal emission anyways 478 497 QMetaObject::invokeMethod(d->watcherHelper, "finished", Qt::QueuedConnection);
Note:
See TracChangeset
for help on using the changeset viewer.