aboutsummaryrefslogtreecommitdiff
path: root/src/kerneldevice
diff options
context:
space:
mode:
authorEric Caruso <ejcaruso@chromium.org>2020-06-17 16:19:07 -0700
committerEric Caruso <ejcaruso@chromium.org>2020-06-17 16:19:07 -0700
commit9d31cbaa2dc2efb77d174134156b612072d6bf0b (patch)
treea29bb4e4bc97bf85e022ef9dd735af26159158e1 /src/kerneldevice
parent12ea728112f562a572a5c0ecc7bba47bb529d41c (diff)
mm-kernel-device: give cmp a total order
This allows MMKernelDevice::cmp to compare two kernel devices with different object types, which means that subclasses can continue to only handle comparisons with their own type. The order may not be stable across builds.
Diffstat (limited to 'src/kerneldevice')
-rw-r--r--src/kerneldevice/mm-kernel-device.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/kerneldevice/mm-kernel-device.c b/src/kerneldevice/mm-kernel-device.c
index abe0ddd0..fa865394 100644
--- a/src/kerneldevice/mm-kernel-device.c
+++ b/src/kerneldevice/mm-kernel-device.c
@@ -203,6 +203,9 @@ mm_kernel_device_cmp (MMKernelDevice *a,
g_return_val_if_fail (MM_IS_KERNEL_DEVICE (a), FALSE);
g_return_val_if_fail (MM_IS_KERNEL_DEVICE (b), FALSE);
+ if (G_OBJECT_TYPE (a) != G_OBJECT_TYPE (b))
+ return G_OBJECT_TYPE (a) < G_OBJECT_TYPE (b);
+
return (MM_KERNEL_DEVICE_GET_CLASS (a)->cmp ?
MM_KERNEL_DEVICE_GET_CLASS (a)->cmp (a, b) :
FALSE);