|
@@ -672,6 +672,7 @@ static int _clear_object(struct object_instance *instance)
|
|
|
int res;
|
|
int res;
|
|
|
struct object_instance *find_instance = NULL;
|
|
struct object_instance *find_instance = NULL;
|
|
|
struct object_key *object_key = NULL;
|
|
struct object_key *object_key = NULL;
|
|
|
|
|
+ struct object_tracker *tracker_pt = NULL;
|
|
|
|
|
|
|
|
for (list = instance->key_head.next;
|
|
for (list = instance->key_head.next;
|
|
|
list != &instance->key_head; ) {
|
|
list != &instance->key_head; ) {
|
|
@@ -687,6 +688,19 @@ static int _clear_object(struct object_instance *instance)
|
|
|
free(object_key);
|
|
free(object_key);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ for (list = instance->track_head.next;
|
|
|
|
|
+ list != &instance->track_head;) {
|
|
|
|
|
+
|
|
|
|
|
+ tracker_pt = list_entry (list,
|
|
|
|
|
+ struct object_tracker, object_list);
|
|
|
|
|
+
|
|
|
|
|
+ list = list->next;
|
|
|
|
|
+
|
|
|
|
|
+ list_del(&tracker_pt->tracker_list);
|
|
|
|
|
+ list_del(&tracker_pt->object_list);
|
|
|
|
|
+ free(tracker_pt);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
for (list = instance->child_head.next;
|
|
for (list = instance->child_head.next;
|
|
|
list != &instance->child_head; ) {
|
|
list != &instance->child_head; ) {
|
|
|
|
|
|