Fix/cleanup error handling in paths generation for private ID data case.
authorBastien Montagne <montagne29@wanadoo.fr>
Wed, 4 Sep 2019 13:06:53 +0000 (15:06 +0200)
committerBastien Montagne <montagne29@wanadoo.fr>
Wed, 4 Sep 2019 13:08:32 +0000 (15:08 +0200)
When using new `rna_prepend_real_ID_path()`, caller have to handle the
NULL path case and decide whetehr this is a valid case or an error one.

source/blender/makesrna/intern/rna_access.c

index 61634a84d41ea12d0d5fecf1f3eaca9f9d66f5d8..6e98b5f472753691e7a57343fc307b31311377b6 100644 (file)
@@ -5873,6 +5873,7 @@ char *RNA_path_from_real_ID_to_struct(Main *bmain, PointerRNA *ptr, struct ID **
 {
   char *path = RNA_path_from_ID_to_struct(ptr);
 
+  /* NULL path is valid in that case, when given struct is an ID one... */
   return rna_prepend_real_ID_path(bmain, ptr->owner_id, path, r_real);
 }
 
@@ -5987,7 +5988,9 @@ char *RNA_path_from_real_ID_to_property_index(
 {
   char *path = RNA_path_from_ID_to_property_index(ptr, prop, index_dim, index);
 
-  return rna_prepend_real_ID_path(bmain, ptr->owner_id, path, r_real_id);
+  /* NULL path is always an error here, in that case do not return the 'fake ID from real ID' part
+   * of the path either. */
+  return path != NULL ? rna_prepend_real_ID_path(bmain, ptr->owner_id, path, r_real_id) : NULL;
 }
 
 /**