aboutsummaryrefslogtreecommitdiff
path: root/lout/object.cc
diff options
context:
space:
mode:
authorSebastian Geerken <devnull@localhost>2013-03-05 14:28:34 +0100
committerSebastian Geerken <devnull@localhost>2013-03-05 14:28:34 +0100
commit09cbe1a36c6ca2762d2e49f173db7ee4fb683448 (patch)
treeaaf322ad1388f2c8a507d1c6a51779c8dd025f24 /lout/object.cc
parent98465834b8b0e7c4a563e651a51befd2a2ab06ac (diff)
parente844f4119a6a5b144b18af4bcc841c816f575159 (diff)
Merge with main repo.
Diffstat (limited to 'lout/object.cc')
-rw-r--r--lout/object.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/lout/object.cc b/lout/object.cc
index 85a908b9..99b5902d 100644
--- a/lout/object.cc
+++ b/lout/object.cc
@@ -106,6 +106,30 @@ size_t Object::sizeOf()
return sizeof(Object*);
}
+// ----------------
+// Comparable
+// ----------------
+
+/**
+ * \brief This static method may be used as compare function for
+ * qsort(3) and bsearch(3), for an array of Object* (Object*[] or
+ * Object**).
+ */
+int Comparable::compareFun(const void *p1, const void *p2)
+{
+ Comparable *c1 = *(Comparable**)p1;
+ Comparable *c2 = *(Comparable**)p2;
+
+ if (c1 && c2)
+ return ((c1)->compareTo(c2));
+ else if (c1)
+ return 1;
+ else if (c2)
+ return -1;
+ else
+ return 0;
+}
+
// -------------
// Pointer
// -------------