[Bf-blender-cvs] [0d93e59340a] compositor-cryptomatte-workflow: Fixed ASAN error in input_operations_from_*.

Jeroen Bakker noreply at git.blender.org
Mon Mar 15 09:12:55 CET 2021


Commit: 0d93e59340ad4efd5159de86eb6a7d100458f0d6
Author: Jeroen Bakker
Date:   Mon Mar 15 08:53:46 2021 +0100
Branches: compositor-cryptomatte-workflow
https://developer.blender.org/rB0d93e59340ad4efd5159de86eb6a7d100458f0d6

Fixed ASAN error in input_operations_from_*.

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

M	source/blender/compositor/nodes/COM_CryptomatteNode.cc

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

diff --git a/source/blender/compositor/nodes/COM_CryptomatteNode.cc b/source/blender/compositor/nodes/COM_CryptomatteNode.cc
index a7bebc7a634..01ed67c3bf2 100644
--- a/source/blender/compositor/nodes/COM_CryptomatteNode.cc
+++ b/source/blender/compositor/nodes/COM_CryptomatteNode.cc
@@ -100,13 +100,13 @@ void CryptomatteNode::input_operations_from_render_source(
     RenderLayer *render_layer = RE_GetRenderLayer(render_result, view_layer->name);
     if (render_layer) {
       LISTBASE_FOREACH (RenderPass *, render_pass, &render_layer->passes) {
-        blender::StringRef combined_name =
+        const std::string combined_name =
             blender::StringRef(view_layer->name,
                                strnlen(view_layer->name, sizeof(view_layer->name))) +
             "." +
             blender::StringRef(render_pass->name,
                                strnlen(render_pass->name, sizeof(render_pass->name)));
-        if (combined_name.startswith(prefix)) {
+        if (blender::StringRef(combined_name).startswith(prefix)) {
           RenderLayersProg *op = new RenderLayersProg(
               render_pass->name, COM_DT_COLOR, render_pass->channels);
           op->setScene(scene);
@@ -161,14 +161,14 @@ void CryptomatteNode::input_operations_from_image_source(
     const std::string prefix = ntreeCompositCryptomatteLayerPrefix(&node);
     LISTBASE_FOREACH (RenderLayer *, render_layer, &image->rr->layers) {
       LISTBASE_FOREACH (RenderPass *, render_pass, &render_layer->passes) {
-        blender::StringRef combined_name =
+        const std::string combined_name =
             blender::StringRef(render_layer->name,
                                strnlen(render_layer->name, sizeof(render_layer->name))) +
             "." +
             blender::StringRef(render_pass->name,
                                strnlen(render_pass->name, sizeof(render_pass->name)));
 
-        if (combined_name.startswith(prefix)) {
+        if (blender::StringRef(combined_name).startswith(prefix)) {
           MultilayerColorOperation *op = new MultilayerColorOperation(
               render_layer, render_pass, view);
           op->setImage(image);



More information about the Bf-blender-cvs mailing list