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 ======================= */