[Bf-blender-cvs] [b0d2a435a17] master: Cleanup: Further tweaks to RNA path API const'ness of PointerRNA parameter.

Bastien Montagne noreply at git.blender.org
Wed May 25 15:09:11 CEST 2022


Commit: b0d2a435a17540641c6f2fb7453db8fc560ca7f8
Author: Bastien Montagne
Date:   Wed May 25 15:06:26 2022 +0200
Branches: master
https://developer.blender.org/rBb0d2a435a17540641c6f2fb7453db8fc560ca7f8

Cleanup: Further tweaks to RNA path API const'ness of PointerRNA parameter.

`RNA_path_struct_property_py` cannot get const `ptr` parameter for now
(usage of `RNA_struct_find_property`).

Also make `RNA_path_resolve_` functions take a const PointerRNA
parameter.

===================================================================

M	source/blender/makesrna/RNA_access.h
M	source/blender/makesrna/intern/rna_access.c

===================================================================

diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h
index a389ce1d31b..4e8a6a42059 100644
--- a/source/blender/makesrna/RNA_access.h
+++ b/source/blender/makesrna/RNA_access.h
@@ -413,8 +413,7 @@ int RNA_property_collection_lookup_string(PointerRNA *ptr,
                                           PropertyRNA *prop,
                                           const char *key,
                                           PointerRNA *r_ptr);
-int RNA_property_collection_lookup_string_index(
-    PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr, int *r_index);
+int RNA_property_collection_lookup_string_index(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr, int *r_index);
 /**
  * Zero return is an assignment error.
  */
@@ -470,7 +469,7 @@ bool RNA_property_assign_default(PointerRNA *ptr, PropertyRNA *prop);
  * UI code or Actions, though efficiency is a concern. */
 
 char *RNA_path_append(
-    const char *path, PointerRNA *ptr, PropertyRNA *prop, int intkey, const char *strkey);
+    const char *path, const PointerRNA *ptr, PropertyRNA *prop, int intkey, const char *strkey);
 #if 0 /* UNUSED. */
 char *RNA_path_back(const char *path);
 #endif
@@ -488,7 +487,10 @@ char *RNA_path_back(const char *path);
  * \note Assumes all pointers provided are valid
  * \return True if path can be resolved to a valid "pointer + property" OR "pointer only"
  */
-bool RNA_path_resolve(PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop);
+bool RNA_path_resolve(const PointerRNA *ptr,
+                      const char *path,
+                      PointerRNA *r_ptr,
+                      PropertyRNA **r_prop);
 
 /**
  * Resolve the given RNA Path to find the pointer and/or property + array index
@@ -497,16 +499,22 @@ bool RNA_path_resolve(PointerRNA *ptr, const char *path, PointerRNA *r_ptr, Prop
  * \note Assumes all pointers provided are valid.
  * \return True if path can be resolved to a valid "pointer + property" OR "pointer only"
  */
-bool RNA_path_resolve_full(
-    PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop, int *r_index);
+bool RNA_path_resolve_full(const PointerRNA *ptr,
+                           const char *path,
+                           PointerRNA *r_ptr,
+                           PropertyRNA **r_prop,
+                           int *r_index);
 /**
  * A version of #RNA_path_resolve_full doesn't check the value of #PointerRNA.data.
  *
  * \note While it's correct to ignore the value of #PointerRNA.data
  * most callers need to know if the resulting pointer was found and not null.
  */
-bool RNA_path_resolve_full_maybe_null(
-    PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop, int *r_index);
+bool RNA_path_resolve_full_maybe_null(const PointerRNA *ptr,
+                                      const char *path,
+                                      PointerRNA *r_ptr,
+                                      PropertyRNA **r_prop,
+                                      int *r_index);
 
 /* RNA_path_resolve_property() variants ensure that pointer + property both exist. */
 
@@ -518,7 +526,7 @@ bool RNA_path_resolve_full_maybe_null(
  * \note Assumes all pointers provided are valid
  * \return True only if both a valid pointer and property are found after resolving the path
  */
-bool RNA_path_resolve_property(PointerRNA *ptr,
+bool RNA_path_resolve_property(const PointerRNA *ptr,
                                const char *path,
                                PointerRNA *r_ptr,
                                PropertyRNA **r_prop);
@@ -531,8 +539,11 @@ bool RNA_path_resolve_property(PointerRNA *ptr,
  * \note Assumes all pointers provided are valid
  * \return True only if both a valid pointer and property are found after resolving the path
  */
-bool RNA_path_resolve_property_full(
-    PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop, int *r_index);
+bool RNA_path_resolve_property_full(const PointerRNA *ptr,
+                                    const char *path,
+                                    PointerRNA *r_ptr,
+                                    PropertyRNA **r_prop,
+                                    int *r_index);
 
 /* RNA_path_resolve_property_and_item_pointer() variants ensure that pointer + property both exist,
  * and resolve last Pointer value if possible (Pointer prop or item of a Collection prop). */
@@ -549,7 +560,7 @@ bool RNA_path_resolve_property_full(
  * You must check for its validity before use!
  * \return True only if both a valid pointer and property are found after resolving the path
  */
-bool RNA_path_resolve_property_and_item_pointer(PointerRNA *ptr,
+bool RNA_path_resolve_property_and_item_pointer(const PointerRNA *ptr,
                                                 const char *path,
                                                 PointerRNA *r_ptr,
                                                 PropertyRNA **r_prop,
@@ -568,7 +579,7 @@ bool RNA_path_resolve_property_and_item_pointer(PointerRNA *ptr,
  * You must check for its validity before use!
  * \return True only if both a valid pointer and property are found after resolving the path
  */
-bool RNA_path_resolve_property_and_item_pointer_full(PointerRNA *ptr,
+bool RNA_path_resolve_property_and_item_pointer_full(const PointerRNA *ptr,
                                                      const char *path,
                                                      PointerRNA *r_ptr,
                                                      PropertyRNA **r_prop,
@@ -670,7 +681,7 @@ char *RNA_path_full_property_py(struct Main *bmain,
  * Get the struct.property as a python representation, eg:
  *   some_struct.some_prop[10]
  */
-char *RNA_path_struct_property_py(const PointerRNA *ptr, PropertyRNA *prop, int index);
+char *RNA_path_struct_property_py(PointerRNA *ptr, PropertyRNA *prop, int index);
 /**
  * Get the struct.property as a python representation, eg:
  *   some_prop[10]
diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c
index 91e98cd6943..ccb7e1c69bc 100644
--- a/source/blender/makesrna/intern/rna_access.c
+++ b/source/blender/makesrna/intern/rna_access.c
@@ -5108,7 +5108,7 @@ static bool rna_path_parse_array_index(const char **path,
  *
  * \return \a true on success, \a false if the path is somehow invalid.
  */
-static bool rna_path_parse(PointerRNA *ptr,
+static bool rna_path_parse(const PointerRNA *ptr,
                            const char *path,
                            PointerRNA *r_ptr,
                            PropertyRNA **r_prop,
@@ -5265,7 +5265,10 @@ static bool rna_path_parse(PointerRNA *ptr,
   return true;
 }
 
-bool RNA_path_resolve(PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop)
+bool RNA_path_resolve(const PointerRNA *ptr,
+                      const char *path,
+                      PointerRNA *r_ptr,
+                      PropertyRNA **r_prop)
 {
   if (!rna_path_parse(ptr, path, r_ptr, r_prop, NULL, NULL, NULL, true)) {
     return false;
@@ -5275,7 +5278,7 @@ bool RNA_path_resolve(PointerRNA *ptr, const char *path, PointerRNA *r_ptr, Prop
 }
 
 bool RNA_path_resolve_full(
-    PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop, int *r_index)
+    const PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop, int *r_index)
 {
   if (!rna_path_parse(ptr, path, r_ptr, r_prop, r_index, NULL, NULL, true)) {
     return false;
@@ -5285,12 +5288,12 @@ bool RNA_path_resolve_full(
 }
 
 bool RNA_path_resolve_full_maybe_null(
-    PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop, int *r_index)
+    const PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop, int *r_index)
 {
   return rna_path_parse(ptr, path, r_ptr, r_prop, r_index, NULL, NULL, true);
 }
 
-bool RNA_path_resolve_property(PointerRNA *ptr,
+bool RNA_path_resolve_property(const PointerRNA *ptr,
                                const char *path,
                                PointerRNA *r_ptr,
                                PropertyRNA **r_prop)
@@ -5303,7 +5306,7 @@ bool RNA_path_resolve_property(PointerRNA *ptr,
 }
 
 bool RNA_path_resolve_property_full(
-    PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop, int *r_index)
+    const PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop, int *r_index)
 {
   if (!rna_path_parse(ptr, path, r_ptr, r_prop, r_index, NULL, NULL, false)) {
     return false;
@@ -5312,7 +5315,7 @@ bool RNA_path_resolve_property_full(
   return r_ptr->data != NULL && *r_prop != NULL;
 }
 
-bool RNA_path_resolve_property_and_item_pointer(PointerRNA *ptr,
+bool RNA_path_resolve_property_and_item_pointer(const PointerRNA *ptr,
                                                 const char *path,
                                                 PointerRNA *r_ptr,
                                                 PropertyRNA **r_prop,
@@ -5325,7 +5328,7 @@ bool RNA_path_resolve_property_and_item_pointer(PointerRNA *ptr,
   return r_ptr->data != NULL && *r_prop != NULL;
 }
 
-bool RNA_path_resolve_property_and_item_pointer_full(PointerRNA *ptr,
+bool RNA_path_resolve_property_and_item_pointer_full(const PointerRNA *ptr,
                                                      const char *path,
                                                      PointerRNA *r_ptr,
                                                      PropertyRNA **r_prop,
@@ -5343,8 +5346,11 @@ bool RNA_path_resolve_elements(PointerRNA *ptr, const char *path, ListBase *r_el
   return rna_path_parse(ptr, path, NULL, NULL, NULL, NULL, r_elements, false);
 }
 
-char *RNA_path_append(
-    const char *path, PointerRNA *UNUSED(ptr), PropertyRNA *prop, int intkey, const char *strkey)
+char *RNA_path_append(const char *path,
+                      const PointerRNA *UNUSED(ptr),
+                      PropertyRNA *prop,
+                      int intkey,
+                      const char *strkey)
 {
   DynStr *dynstr;
   char *result;
@@ -6004,7 +6010,7 @@ char *RNA_path_full_property_py(Main 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list