static void _adg_invalidate(AdgEntity *entity) { AdgDimPrivate *data = ((AdgDim *) entity)->data; if (data->quote.value) { g_object_unref(data->quote.value); data->quote.value = NULL; } if (data->quote.entity) adg_entity_invalidate((AdgEntity *) data->quote.entity); if (data->ref1) adg_point_invalidate(data->ref1); if (data->ref2) adg_point_invalidate(data->ref2); if (data->pos) adg_point_invalidate(data->pos); if (_ADG_OLD_ENTITY_CLASS->invalidate) _ADG_OLD_ENTITY_CLASS->invalidate(entity); }
static void _adg_invalidate(AdgEntity *entity) { AdgADim *adim; AdgADimPrivate *data; adim = (AdgADim *) entity; data = adim->data; _adg_dispose_trail(adim); _adg_dispose_markers(adim); data->geometry_arranged = FALSE; _adg_unset_trail(adim); if (data->org1) adg_point_invalidate(data->org1); if (data->org2) adg_point_invalidate(data->org2); if (_ADG_OLD_ENTITY_CLASS->invalidate) _ADG_OLD_ENTITY_CLASS->invalidate(entity); }
static void _adg_behavior_misc(void) { AdgPoint *point, *dup_point; CpmlPair *pair, *dup_pair; CpmlPair dummy_pair = { 3.4, 5.6 }; point = adg_point_new(); g_assert_nonnull(point); adg_point_set_pair_explicit(point, 1, 2); pair = (CpmlPair *) point; adg_assert_isapprox(pair->x, 1); adg_assert_isapprox(pair->y, 2); pair = adg_point_get_pair(point); g_assert_nonnull(pair); adg_assert_isapprox(pair->x, 1); adg_assert_isapprox(pair->y, 2); dup_point = adg_point_dup(point); g_assert_nonnull(dup_point); g_assert_true(dup_point != point); /* Should be a noop with explicit pairs */ adg_point_invalidate(point); dup_pair = adg_point_get_pair(dup_point); g_assert_nonnull(dup_pair); g_assert_true(dup_pair != pair); adg_assert_isapprox(pair->x, dup_pair->x); adg_assert_isapprox(pair->y, dup_pair->y); g_assert_true(adg_point_equal(point, dup_point)); g_free(dup_pair); adg_point_destroy(dup_point); dup_point = adg_point_new(); adg_point_set_pair(dup_point, &dummy_pair); dup_pair = (CpmlPair *) dup_point; /* Should be a noop with explicit pairs */ adg_point_invalidate(dup_point); adg_assert_isapprox(dup_pair->x, 3.4); adg_assert_isapprox(dup_pair->y, 5.6); g_assert_false(adg_point_equal(point, dup_point)); adg_point_copy(dup_point, point); dup_pair = adg_point_get_pair(dup_point); g_assert_nonnull(dup_pair); g_assert_nonnull(dup_pair); adg_assert_isapprox(pair->x, dup_pair->x); adg_assert_isapprox(pair->y, dup_pair->y); g_assert_true(adg_point_equal(point, dup_point)); g_free(pair); g_free(dup_pair); adg_point_destroy(point); adg_point_destroy(dup_point); }