diff options
author | Eric Caruso <ejcaruso@chromium.org> | 2020-06-17 16:19:07 -0700 |
---|---|---|
committer | Eric Caruso <ejcaruso@chromium.org> | 2020-06-17 16:19:07 -0700 |
commit | 9d31cbaa2dc2efb77d174134156b612072d6bf0b (patch) | |
tree | a29bb4e4bc97bf85e022ef9dd735af26159158e1 /src | |
parent | 12ea728112f562a572a5c0ecc7bba47bb529d41c (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')
-rw-r--r-- | src/kerneldevice/mm-kernel-device.c | 3 |
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); |