[rygel] core: Sort before slicing



commit 61d67cc6e10d6953745efac72bee4f05a32c56e1
Author: Jens Georg <mail jensge org>
Date:   Sun Aug 5 19:15:37 2012 +0200

    core: Sort before slicing
    
    Sort SimpleContainer before slicing the results.

 src/librygel-server/rygel-media-query-action.vala |    1 -
 src/librygel-server/rygel-simple-container.vala   |    7 ++++++-
 2 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/src/librygel-server/rygel-media-query-action.vala b/src/librygel-server/rygel-media-query-action.vala
index 24b1acf..e8606ce 100644
--- a/src/librygel-server/rygel-media-query-action.vala
+++ b/src/librygel-server/rygel-media-query-action.vala
@@ -81,7 +81,6 @@ internal abstract class Rygel.MediaQueryAction : GLib.Object, StateMachine {
                 this.update_id = uint32.MAX;
             }
 
-            results.sort_by_criteria (this.sort_criteria);
 
             results.serialize (this.didl_writer,
                                this.http_server,
diff --git a/src/librygel-server/rygel-simple-container.vala b/src/librygel-server/rygel-simple-container.vala
index 08cb7d8..bb7d18b 100644
--- a/src/librygel-server/rygel-simple-container.vala
+++ b/src/librygel-server/rygel-simple-container.vala
@@ -130,7 +130,12 @@ public class Rygel.SimpleContainer : Rygel.MediaContainer,
         uint stop = offset + max_count;
         stop = stop.clamp (0, this.child_count);
 
-        return this.children.slice ((int) offset, (int) stop) as MediaObjects;
+        var sorted_children = this.children.slice (0, this.child_count)
+                                        as MediaObjects;
+        sorted_children.sort_by_criteria (sort_criteria);
+
+        return sorted_children.slice ((int) offset, (int) stop)
+                                        as MediaObjects;
     }
 
     public override async MediaObject? find_object (string       id,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]