From 99dd90008b9d07a9e90f101da10fbe58dcb48854 Mon Sep 17 00:00:00 2001 From: Josh Klontz Date: Wed, 6 Mar 2013 14:16:53 -0500 Subject: [PATCH] cleaned up logic for retrieveOrEnroll --- sdk/core/core.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/sdk/core/core.cpp b/sdk/core/core.cpp index 34630bc..acdf227 100644 --- a/sdk/core/core.cpp +++ b/sdk/core/core.cpp @@ -174,12 +174,19 @@ struct AlgorithmCore void retrieveOrEnroll(const File &file, QScopedPointer &gallery, FileList &galleryFiles) { - gallery.reset(Gallery::make(file)); - if ((file.suffix() != "gal") && (file.suffix() != "mem")) { - enroll(file); - gallery.reset(Gallery::make(getMemoryGallery(file))); + if ((file.suffix() == "gal") || (file.suffix() == "mem")) { + // Retrieve it + gallery.reset(Gallery::make(file)); galleryFiles = gallery->files(); } else { + // Was it already enrolled in memory? + gallery.reset(Gallery::make(getMemoryGallery(file))); + galleryFiles = gallery->files(); + if (!galleryFiles.isEmpty()) return; + + // Enroll it + enroll(file); + gallery.reset(Gallery::make(getMemoryGallery(file))); galleryFiles = gallery->files(); } } -- libgit2 0.21.4