Hello all, I'm unsure if this is the appropriate location for this suggestion.
I've been heavily using the QNetworkAccessManager recently for applications which are designed to run for months at a time, I noticed a memory issue which can't be properly classified as a leak.

This small block demonstrates the issue (it could be connected to anything)

Qt Code:
  1. QNetworkReply* reply = network_access_manager.get(request);
  2.  
  3. connect(reply, SIGNAL(finished()),
  4. &e_l , SLOT(quit()));
  5. e_l.exec();
  6.  
  7. /* ... */
  8.  
  9. reply->deleteLater();
To copy to clipboard, switch view to plain text mode 

After execution of this code, all allocated memory is freed...however somewhere in the QObject world there's reference to reply being connected to e_l. This remains true even if both variables are freed, at which point there's no way to remove the reference (as far as I'm aware) and so it's essentially lost memory. My very rough test found using Qt 4.8.0 Linux x86_64 that .543K was lost per connection which was not disconnected. This behaviour was unexpected to me (even if I am in the wrong) and I'd predict it to cause unexpected leaks for anyone developing with the network utilities. Is there no reason the d-tor of the freed cannot inform the paired object so this reference can be removed?