- use BKE_keyingset_free_path where paths were being freed inline.
- rna_path was being freed when null, printing errors.
This commit is contained in:
@@ -916,10 +916,11 @@ void BKE_keyingset_free_path (KeyingSet *ks, KS_Path *ksp)
|
||||
/* sanity check */
|
||||
if ELEM(NULL, ks, ksp)
|
||||
return;
|
||||
|
||||
|
||||
/* free RNA-path info */
|
||||
MEM_freeN(ksp->rna_path);
|
||||
|
||||
if(ksp->rna_path)
|
||||
MEM_freeN(ksp->rna_path);
|
||||
|
||||
/* free path itself */
|
||||
BLI_freelinkN(&ks->paths, ksp);
|
||||
}
|
||||
|
||||
@@ -418,12 +418,9 @@ static int remove_keyingset_button_exec (bContext *C, wmOperator *op)
|
||||
|
||||
/* try to find a path matching this description */
|
||||
ksp= BKE_keyingset_find_path(ks, ptr.id.data, ks->name, path, index, KSP_GROUP_KSNAME);
|
||||
|
||||
|
||||
if (ksp) {
|
||||
/* just free it... */
|
||||
MEM_freeN(ksp->rna_path);
|
||||
BLI_freelinkN(&ks->paths, ksp);
|
||||
|
||||
BKE_keyingset_free_path(ks, ksp);
|
||||
success= 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -4144,12 +4144,9 @@ static void do_outliner_keyingset_editop(SpaceOops *soops, KeyingSet *ks, ListBa
|
||||
|
||||
if (ksp) {
|
||||
/* free path's data */
|
||||
// TODO: we probably need an API method for this
|
||||
if (ksp->rna_path) MEM_freeN(ksp->rna_path);
|
||||
BKE_keyingset_free_path(ks, ksp);
|
||||
|
||||
ks->active_path= 0;
|
||||
|
||||
/* remove path from set */
|
||||
BLI_freelinkN(&ks->paths, ksp);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user