Fix a memory leak in CmaRootObject.

Assign a thread name for easy debugging.
This commit is contained in:
codestation
2013-08-20 00:41:18 -04:30
parent 0704cfa80a
commit d4dcb42a8e
7 changed files with 12 additions and 6 deletions

View File

@@ -78,7 +78,7 @@ void AVDecoder::getVideoMetadata(metadata_t &metadata)
if((entry = av_dict_get(file_metadata, "title", NULL, 0)) != NULL) {
metadata.data.video.title = strdup(entry->value);
} else {
metadata.data.video.title = metadata.name;
metadata.data.video.title = strdup(metadata.name);
}
metadata.data.video.tracks->data.track_video.duration = pFormatCtx->duration / 1000;

View File

@@ -29,10 +29,14 @@ void BaseWorker::onFinished()
{
}
void BaseWorker::start()
void BaseWorker::start(const char *thread_name)
{
thread = new QThread();
if(thread_name) {
thread->setObjectName(thread_name);
}
// Move this service to a new thread
this->moveToThread(thread);

View File

@@ -30,7 +30,7 @@ class BaseWorker : public QObject
public:
explicit BaseWorker(QObject *parent = 0);
void start();
void start(const char *thread_name = NULL);
private:
QThread *thread;

View File

@@ -71,7 +71,7 @@ vita_device_t *CmaClient::getDeviceConnection()
break;
}
qDebug("No Vita detected via USB, attempt %i", ++num_tries);
vita = VitaMTP_Get_First_Wireless_Vita(&host, 0, 0, CmaClient::deviceRegistered, CmaClient::generatePin);
vita = VitaMTP_Get_First_Wireless_Vita(&host, 0, 3, CmaClient::deviceRegistered, CmaClient::generatePin);
if(vita || !active) {
break;
}

View File

@@ -37,7 +37,7 @@ void CMARootObject::initObject(const QString &path)
case VITA_OHFI_MUSIC:
metadata.dataType = Music;
this->path = path;
num_filters = 1;
num_filters = 2;
filters = new metadata_t[2];
//createFilter(&filters[0], "Artists", VITA_DIR_TYPE_MASK_MUSIC | VITA_DIR_TYPE_MASK_ROOT | VITA_DIR_TYPE_MASK_ARTISTS);
createFilter(&filters[0], "Albums", VITA_DIR_TYPE_MASK_MUSIC | VITA_DIR_TYPE_MASK_ROOT | VITA_DIR_TYPE_MASK_ALBUMS);

View File

@@ -165,6 +165,8 @@ void Database::destroy()
QMutexLocker locker(&mutex);
for(map_list::iterator root = object_list.begin(); root != object_list.end(); ++root) {
CMARootObject *first = static_cast<CMARootObject *>((*root).takeFirst());
delete first;
qDeleteAll(*root);
}

View File

@@ -66,7 +66,7 @@ void MainWidget::dialogResult(int result)
void MainWidget::startServer()
{
qDebug("Starting cma event loop");
clientLoop.start();
clientLoop.start("CmaClient");
}
void MainWidget::stopServer()