[Bf-blender-cvs] [19488ee1257] master: Fix (harmless) Cycles ASAN warnings

Brecht Van Lommel noreply at git.blender.org
Fri Jun 21 18:01:00 CEST 2019


Commit: 19488ee125734c616559a6ad94369bc28feddc7e
Author: Brecht Van Lommel
Date:   Fri Jun 21 16:24:56 2019 +0200
Branches: master
https://developer.blender.org/rB19488ee125734c616559a6ad94369bc28feddc7e

Fix (harmless) Cycles ASAN warnings

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

M	intern/cycles/blender/blender_camera.cpp
M	intern/cycles/graph/node.cpp
M	intern/cycles/render/camera.cpp
M	intern/cycles/util/util_array.h
M	source/blender/blenlib/intern/timecode.c

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

diff --git a/intern/cycles/blender/blender_camera.cpp b/intern/cycles/blender/blender_camera.cpp
index 92dc8a8a4c6..da43f94708c 100644
--- a/intern/cycles/blender/blender_camera.cpp
+++ b/intern/cycles/blender/blender_camera.cpp
@@ -91,16 +91,31 @@ static void blender_camera_init(BlenderCamera *bcam, BL::RenderSettings &b_rende
 {
   memset((void *)bcam, 0, sizeof(BlenderCamera));
 
+  bcam->nearclip = 1e-5f;
+  bcam->farclip = 1e5f;
+
   bcam->type = CAMERA_PERSPECTIVE;
+  bcam->ortho_scale = 1.0f;
+
+  bcam->lens = 50.0f;
+  bcam->shuttertime = 1.0f;
+
+  bcam->rolling_shutter_type = Camera::ROLLING_SHUTTER_NONE;
+  bcam->rolling_shutter_duration = 0.1f;
+
+  bcam->aperturesize = 0.0f;
+  bcam->apertureblades = 0;
+  bcam->aperturerotation = 0.0f;
+  bcam->focaldistance = 10.0f;
+
   bcam->zoom = 1.0f;
   bcam->pixelaspect = make_float2(1.0f, 1.0f);
+  bcam->aperture_ratio = 1.0f;
+
   bcam->sensor_width = 36.0f;
   bcam->sensor_height = 24.0f;
   bcam->sensor_fit = BlenderCamera::AUTO;
-  bcam->shuttertime = 1.0f;
   bcam->motion_position = Camera::MOTION_POSITION_CENTER;
-  bcam->rolling_shutter_type = Camera::ROLLING_SHUTTER_NONE;
-  bcam->rolling_shutter_duration = 0.1f;
   bcam->border.right = 1.0f;
   bcam->border.top = 1.0f;
   bcam->pano_viewplane.right = 1.0f;
@@ -108,6 +123,7 @@ static void blender_camera_init(BlenderCamera *bcam, BL::RenderSettings &b_rende
   bcam->viewport_camera_border.right = 1.0f;
   bcam->viewport_camera_border.top = 1.0f;
   bcam->offscreen_dicing_scale = 1.0f;
+  bcam->matrix = transform_identity();
 
   /* render resolution */
   bcam->full_width = render_resolution_x(b_render);
diff --git a/intern/cycles/graph/node.cpp b/intern/cycles/graph/node.cpp
index fc7daaeeaa6..4f79a7518dc 100644
--- a/intern/cycles/graph/node.cpp
+++ b/intern/cycles/graph/node.cpp
@@ -313,7 +313,9 @@ void Node::set_default_value(const SocketType &socket)
 {
   const void *src = socket.default_value;
   void *dst = ((char *)this) + socket.struct_offset;
-  memcpy(dst, src, socket.size());
+  if (socket.size() > 0) {
+    memcpy(dst, src, socket.size());
+  }
 }
 
 template<typename T>
diff --git a/intern/cycles/render/camera.cpp b/intern/cycles/render/camera.cpp
index baa3ce77f84..7591d9dda0c 100644
--- a/intern/cycles/render/camera.cpp
+++ b/intern/cycles/render/camera.cpp
@@ -118,6 +118,8 @@ NODE_DEFINE(Camera)
   stereo_eye_enum.insert("right", STEREO_RIGHT);
   SOCKET_ENUM(stereo_eye, "Stereo Eye", stereo_eye_enum, STEREO_NONE);
 
+  SOCKET_BOOLEAN(use_spherical_stereo, "Use Spherical Stereo", false);
+
   SOCKET_FLOAT(interocular_distance, "Interocular Distance", 0.065f);
   SOCKET_FLOAT(convergence_distance, "Convergence Distance", 30.0f * 0.065f);
 
diff --git a/intern/cycles/util/util_array.h b/intern/cycles/util/util_array.h
index 1d7e39344f6..db80ab474e0 100644
--- a/intern/cycles/util/util_array.h
+++ b/intern/cycles/util/util_array.h
@@ -63,7 +63,9 @@ template<typename T, size_t alignment = MIN_ALIGNMENT_CPU_DATA_TYPES> class arra
     }
     else {
       data_ = mem_allocate(from.datasize_);
-      memcpy(data_, from.data_, from.datasize_ * sizeof(T));
+      if (from.datasize_ > 0) {
+        memcpy(data_, from.data_, from.datasize_ * sizeof(T));
+      }
       datasize_ = from.datasize_;
       capacity_ = datasize_;
     }
@@ -73,7 +75,9 @@ template<typename T, size_t alignment = MIN_ALIGNMENT_CPU_DATA_TYPES> class arra
   {
     if (this != &from) {
       resize(from.size());
-      memcpy((void *)data_, from.data_, datasize_ * sizeof(T));
+      if (datasize_ > 0) {
+        memcpy((void *)data_, from.data_, datasize_ * sizeof(T));
+      }
     }
 
     return *this;
@@ -83,7 +87,7 @@ template<typename T, size_t alignment = MIN_ALIGNMENT_CPU_DATA_TYPES> class arra
   {
     resize(from.size());
 
-    if (from.size() > 0) {
+    if (from.size() > 0 && datasize_ > 0) {
       memcpy(data_, &from[0], datasize_ * sizeof(T));
     }
 
@@ -100,6 +104,9 @@ template<typename T, size_t alignment = MIN_ALIGNMENT_CPU_DATA_TYPES> class arra
     if (datasize_ != other.datasize_) {
       return false;
     }
+    if (datasize_ == 0) {
+      return true;
+    }
 
     return memcmp(data_, other.data_, datasize_ * sizeof(T)) == 0;
   }
diff --git a/source/blender/blenlib/intern/timecode.c b/source/blender/blenlib/intern/timecode.c
index 9b6ed00c704..228f656949c 100644
--- a/source/blender/blenlib/intern/timecode.c
+++ b/source/blender/blenlib/intern/timecode.c
@@ -213,7 +213,7 @@ size_t BLI_timecode_string_from_time_simple(char *str,
   const int hr = ((int)time_seconds) / (60 * 60);
   const int min = (((int)time_seconds) / 60) % 60;
   const int sec = ((int)time_seconds) % 60;
-  const int hun = ((int)(time_seconds * 100.0)) % 100;
+  const int hun = ((int)(fmod(time_seconds, 1.0) * 100));
 
   if (hr) {
     rlen = BLI_snprintf(str, maxncpy, "%.2d:%.2d:%.2d.%.2d", hr, min, sec, hun);



More information about the Bf-blender-cvs mailing list