Cleanup/Refactor: Shapekey: Get rid of `BKE_key_copy_nolib()`
Once again, no behavioral change expected here.
This commit is contained in:
parent
d7f482f88e
commit
5f364216ac
|
@ -39,7 +39,6 @@ extern "C" {
|
|||
void BKE_key_free(struct Key *key);
|
||||
void BKE_key_free_nolib(struct Key *key);
|
||||
struct Key *BKE_key_add(struct Main *bmain, struct ID *id);
|
||||
struct Key *BKE_key_copy_nolib(struct Key *key);
|
||||
void BKE_key_sort(struct Key *key);
|
||||
|
||||
void key_curve_position_weights(float t, float data[4], int type);
|
||||
|
|
|
@ -296,36 +296,6 @@ Key *BKE_key_add(Main *bmain, ID *id) /* common function */
|
|||
return key;
|
||||
}
|
||||
|
||||
/* XXX TODO get rid of this! */
|
||||
Key *BKE_key_copy_nolib(Key *key)
|
||||
{
|
||||
Key *keyn;
|
||||
KeyBlock *kbn, *kb;
|
||||
|
||||
keyn = MEM_dupallocN(key);
|
||||
|
||||
keyn->adt = NULL;
|
||||
|
||||
BLI_duplicatelist(&keyn->block, &key->block);
|
||||
|
||||
kb = key->block.first;
|
||||
kbn = keyn->block.first;
|
||||
while (kbn) {
|
||||
|
||||
if (kbn->data) {
|
||||
kbn->data = MEM_dupallocN(kbn->data);
|
||||
}
|
||||
if (kb == key->refkey) {
|
||||
keyn->refkey = kbn;
|
||||
}
|
||||
|
||||
kbn = kbn->next;
|
||||
kb = kb->next;
|
||||
}
|
||||
|
||||
return keyn;
|
||||
}
|
||||
|
||||
/* Sort shape keys and Ipo curves after a change. This assumes that at most
|
||||
* one key was moved, which is a valid assumption for the places it's
|
||||
* currently being called.
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include "BKE_editmesh.h"
|
||||
#include "BKE_key.h"
|
||||
#include "BKE_layer.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_mesh.h"
|
||||
#include "BKE_undo_system.h"
|
||||
|
@ -508,7 +509,13 @@ static void *undomesh_from_editmesh(UndoMesh *um, BMEditMesh *em, Key *key)
|
|||
}
|
||||
#endif
|
||||
/* make sure shape keys work */
|
||||
um->me.key = key ? BKE_key_copy_nolib(key) : NULL;
|
||||
if (key != NULL) {
|
||||
um->me.key = (Key *)BKE_id_copy_ex(
|
||||
NULL, &key->id, NULL, LIB_ID_COPY_LOCALIZE | LIB_ID_COPY_NO_ANIMDATA);
|
||||
}
|
||||
else {
|
||||
um->me.key = NULL;
|
||||
}
|
||||
|
||||
/* BM_mesh_validate(em->bm); */ /* for troubleshooting */
|
||||
|
||||
|
|
Loading…
Reference in New Issue