QAmqpClient: Substitute static_cast for qobject_cast

This commit is contained in:
Stuart Longland 2015-05-02 21:09:29 +10:00
parent 60f680a4ef
commit fd1b19b3b6
1 changed files with 10 additions and 4 deletions

View File

@ -661,8 +661,11 @@ QAmqpExchange *QAmqpClient::createExchange(const QString &name, int channelNumbe
{
Q_D(QAmqpClient);
QAmqpExchange *exchange;
if (d->exchanges.contains(name))
return static_cast<QAmqpExchange*>(d->exchanges.get(name));
if (d->exchanges.contains(name)) {
exchange = qobject_cast<QAmqpExchange*>(d->exchanges.get(name));
if (exchange)
return exchange;
}
exchange = new QAmqpExchange(channelNumber, this);
d->methodHandlersByChannel[exchange->channelNumber()].append(exchange->d_func());
@ -685,8 +688,11 @@ QAmqpQueue *QAmqpClient::createQueue(const QString &name, int channelNumber)
{
Q_D(QAmqpClient);
QAmqpQueue *queue;
if (d->queues.contains(name))
return static_cast<QAmqpQueue*>(d->queues.get(name));
if (d->queues.contains(name)) {
queue = qobject_cast<QAmqpQueue*>(d->queues.get(name));
if (queue)
return queue;
}
queue = new QAmqpQueue(channelNumber, this);
d->methodHandlersByChannel[queue->channelNumber()].append(queue->d_func());