From 232dd4c0dc35d15b0f8c8c91e30d76f8cf5913b1 Mon Sep 17 00:00:00 2001 From: John Ralls Date: Thu, 4 Jun 2015 13:31:14 -0700 Subject: [PATCH] Provide qof_instance with functions to delete slots. --- src/libqof/qof/qofinstance-p.h | 3 +++ src/libqof/qof/qofinstance.cpp | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/libqof/qof/qofinstance-p.h b/src/libqof/qof/qofinstance-p.h index 783a9a495e..7582ad75ad 100644 --- a/src/libqof/qof/qofinstance-p.h +++ b/src/libqof/qof/qofinstance-p.h @@ -126,6 +126,9 @@ gboolean qof_instance_kvp_has_guid (const QofInstance *inst, const char *path, void qof_instance_kvp_merge_guids (const QofInstance *target, const QofInstance *donor, const char* path); gboolean qof_instance_has_slot (const QofInstance *inst, const char *path); +void qof_instance_slot_delete (const QofInstance *inst, const char *path); +void qof_instance_slot_delete_if_empty (const QofInstance *inst, + const char *path); #ifdef __cplusplus } diff --git a/src/libqof/qof/qofinstance.cpp b/src/libqof/qof/qofinstance.cpp index ed0b2a2834..3ae1e879a5 100644 --- a/src/libqof/qof/qofinstance.cpp +++ b/src/libqof/qof/qofinstance.cpp @@ -1273,5 +1273,19 @@ qof_instance_has_slot (const QofInstance *inst, const char *path) return kvp_frame_get_value (inst->kvp_data, path) != NULL; } +void +qof_instance_slot_delete (const QofInstance *inst, const char *path) +{ + kvp_frame_set_frame_nc (inst->kvp_data, path, NULL); +} + +void +qof_instance_slot_delete_if_empty (const QofInstance *inst, const char *path) +{ + KvpFrame *frame = kvp_frame_get_frame (inst->kvp_data, path); + if (frame && kvp_frame_is_empty (frame)) + kvp_frame_set_frame_nc (inst->kvp_data, path, NULL); +} + /* ========================== END OF FILE ======================= */