static gboolean ufo_cpu_node_equal_real (UfoNode *n1, UfoNode *n2) { UfoCpuNodePrivate *priv1; UfoCpuNodePrivate *priv2; #ifndef __APPLE__ const gsize MAX_CPUS = MIN (16, CPU_SETSIZE); #else const gsize MAX_CPUS = 16; #endif g_return_val_if_fail (UFO_IS_CPU_NODE (n1) && UFO_IS_CPU_NODE (n2), FALSE); priv1 = UFO_CPU_NODE_GET_PRIVATE (n1); priv2 = UFO_CPU_NODE_GET_PRIVATE (n2); #ifndef __APPLE__ for (gsize i = 0; i < MAX_CPUS; i++) { if (CPU_ISSET (i, priv1->mask) != CPU_ISSET (i, priv2->mask)) return FALSE; } #endif return TRUE; }
static void ufo_cpu_node_init (UfoCpuNode *self) { UfoCpuNodePrivate *priv; self->priv = priv = UFO_CPU_NODE_GET_PRIVATE (self); priv->mask = NULL; }
static void ufo_cpu_node_finalize (GObject *object) { UfoCpuNodePrivate *priv; priv = UFO_CPU_NODE_GET_PRIVATE (object); if (priv->mask) { g_free (priv->mask); priv->mask = NULL; } G_OBJECT_CLASS (ufo_cpu_node_parent_class)->finalize (object); }