[Bf-blender-cvs] [ad01cdd7fc9] master: Transform: improve safety when restoring data
Germano Cavalcante
noreply at git.blender.org
Wed Jan 11 16:08:19 CET 2023
Commit: ad01cdd7fc931c7e313eebc0027a05d96e36e66f
Author: Germano Cavalcante
Date: Wed Jan 11 12:08:04 2023 -0300
Branches: master
https://developer.blender.org/rBad01cdd7fc931c7e313eebc0027a05d96e36e66f
Transform: improve safety when restoring data
===================================================================
M source/blender/editors/transform/transform_generics.c
===================================================================
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 5d3e326d8b0..968e2bca5b9 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -811,13 +811,15 @@ void applyTransObjects(TransInfo *t)
static void transdata_restore_basic(TransDataBasic *td_basic)
{
- /* TransData for crease has no loc */
- if (td_basic->loc) {
- copy_v3_v3(td_basic->loc, td_basic->iloc);
+ if (td_basic->val) {
+ *td_basic->val = td_basic->ival;
}
- if (td_basic->val && td_basic->val != td_basic->loc) {
- *td_basic->val = td_basic->ival;
+ /* TODO(mano-wii): Only use 3D or larger vectors in `td->loc`.
+ * If `loc` and `val` point to the same address, it may indicate that `loc` is not 3D which is
+ * not safe for `copy_v3_v3`. */
+ if (td_basic->loc && td_basic->val != td_basic->loc) {
+ copy_v3_v3(td_basic->loc, td_basic->iloc);
}
}
More information about the Bf-blender-cvs
mailing list