Fix bug when transferring PSP savedatas.
This commit is contained in:
		@@ -402,7 +402,7 @@ void CmaEvent::vitaEventSendObject(vita_event_t *event, int eventId)
 | 
			
		||||
    qDebug("Searching object with OHFI %d", ohfi);
 | 
			
		||||
 | 
			
		||||
    metadata_t *metadata = NULL;
 | 
			
		||||
    if(!m_db->getObjectMetadatas(ohfi, &metadata)) {
 | 
			
		||||
    if(!m_db->getObjectList(ohfi, &metadata)) {
 | 
			
		||||
        qWarning("Failed to find OHFI %d", ohfi);
 | 
			
		||||
        VitaMTP_ReportResult(device, eventId, PTP_RC_VITA_Invalid_OHFI);
 | 
			
		||||
        return;
 | 
			
		||||
 
 | 
			
		||||
@@ -71,6 +71,7 @@ public:
 | 
			
		||||
    virtual bool deleteEntry(int ohfi, int root_ohfi = 0) = 0;
 | 
			
		||||
    virtual QString getAbsolutePath(int ohfi) = 0;
 | 
			
		||||
    virtual QString getRelativePath(int ohfi) = 0;
 | 
			
		||||
    virtual bool getObjectList(int ohfi, metadata_t **metadata) = 0;
 | 
			
		||||
    virtual bool getObjectMetadata(int ohfi, metadata_t &metadata) = 0;
 | 
			
		||||
    virtual int getObjectMetadatas(int parent_ohfi, metadata_t **metadata, int index = 0, int max_number = 0) = 0;
 | 
			
		||||
    virtual qint64 getObjectSize(int ohfi) = 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -390,6 +390,24 @@ bool QListDB::deleteEntry(int ohfi, int root_ohfi)
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool QListDB::getObjectList(int ohfi, metadata_t **metadata)
 | 
			
		||||
{
 | 
			
		||||
    find_data iters;
 | 
			
		||||
    if(find(ohfi, iters)) {
 | 
			
		||||
        CMAObject *object;
 | 
			
		||||
        do {
 | 
			
		||||
            object = *iters.it;
 | 
			
		||||
            *metadata = &object->metadata;
 | 
			
		||||
            metadata = &(*metadata)->next_metadata;
 | 
			
		||||
            *metadata = NULL;
 | 
			
		||||
            object = *++iters.it;
 | 
			
		||||
        } while(iters.it != iters.end && object->metadata.ohfiParent >= OHFI_OFFSET);
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int QListDB::getObjectMetadatas(int parent_ohfi, metadata_t **metadata, int index, int max_number)
 | 
			
		||||
{
 | 
			
		||||
    QMutexLocker locker(&mutex);
 | 
			
		||||
 
 | 
			
		||||
@@ -49,6 +49,7 @@ public:
 | 
			
		||||
    int childObjectCount(int parent_ohfi);
 | 
			
		||||
    bool deleteEntry(int ohfi, int root_ohfi = 0);
 | 
			
		||||
    QString getAbsolutePath(int ohfi);
 | 
			
		||||
    bool getObjectList(int ohfi, metadata_t **metadata);
 | 
			
		||||
    bool getObjectMetadata(int ohfi, metadata_t &metadata);
 | 
			
		||||
    int getObjectMetadatas(int parent_ohfi, metadata_t **metadata, int index = 0, int max_number = 0);
 | 
			
		||||
    qint64 getObjectSize(int ohfi);
 | 
			
		||||
 
 | 
			
		||||
@@ -1309,3 +1309,10 @@ bool SQLiteDB::insertVirtualEntries()
 | 
			
		||||
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool SQLiteDB::getObjectList(int ohfi, metadata_t **metadata)
 | 
			
		||||
{
 | 
			
		||||
    Q_UNUSED(ohfi);
 | 
			
		||||
    Q_UNUSED(metadata);
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -53,6 +53,7 @@ public:
 | 
			
		||||
    int childObjectCount(int parent_ohfi);
 | 
			
		||||
    bool deleteEntry(int ohfi, int root_ohfi = 0);
 | 
			
		||||
    QString getAbsolutePath(int ohfi);
 | 
			
		||||
    bool getObjectList(int ohfi, metadata_t **metadata);
 | 
			
		||||
    bool getObjectMetadata(int ohfi, metadata_t &metadata);
 | 
			
		||||
    int getObjectMetadatas(int parent_ohfi, metadata_t **metadata, int index = 0, int max_number = 0);
 | 
			
		||||
    qint64 getObjectSize(int ohfi);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user