Revision: 39580
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39580
Author:   blendix
Date:     2011-08-21 10:32:15 +0000 (Sun, 21 Aug 2011)
Log Message:
-----------
Cycles: fix some invalid memory access problems found by running the windows 
build in debug mode.

Modified Paths:
--------------
    branches/cycles/CMakeLists.txt
    branches/cycles/intern/cycles/blender/blender_mesh.cpp
    branches/cycles/intern/cycles/blender/blender_object.cpp
    branches/cycles/intern/cycles/blender/blender_session.cpp
    branches/cycles/intern/cycles/blender/blender_shader.cpp
    branches/cycles/intern/cycles/blender/blender_sync.cpp
    branches/cycles/intern/cycles/render/graph.cpp
    branches/cycles/intern/cycles/render/graph.h
    branches/cycles/source/blender/makesrna/intern/makesrna.c

Modified: branches/cycles/CMakeLists.txt
===================================================================
--- branches/cycles/CMakeLists.txt      2011-08-21 10:14:21 UTC (rev 39579)
+++ branches/cycles/CMakeLists.txt      2011-08-21 10:32:15 UTC (rev 39580)
@@ -497,12 +497,6 @@
                        set(BOOST "/usr" CACHE PATH "Boost Directory")
                endif()
 
-           #set(Boost_ADDITIONAL_VERSIONS "1.46" "1.45" "1.44" 
-               #       "1.43" "1.43.0" "1.42" "1.42.0" 
-               #       "1.41" "1.41.0" "1.40" "1.40.0"
-               #       "1.39" "1.39.0" "1.38" "1.38.0"
-               #       "1.37" "1.37.0" "1.34.1" "1_34_1")
-
                set(BOOST_ROOT ${BOOST})
                set(Boost_USE_MULTITHREADED ON)
                find_package(Boost 1.34 REQUIRED COMPONENTS filesystem regex 
system thread)
@@ -819,8 +813,12 @@
                        set(BOOST ${LIBDIR}/boost)
                        set(BOOST_INCLUDE_DIR ${BOOST}/include)
                        set(BOOST_POSTFIX "vc90-mt-s-1_46_1.lib")
-                       set(BOOST_LIBRARIES libboost_date_time-${BOOST_POSTFIX} 
libboost_filesystem-${BOOST_POSTFIX}
-                       libboost_regex-${BOOST_POSTFIX} 
libboost_system-${BOOST_POSTFIX} libboost_thread-${BOOST_POSTFIX})
+                       set(BOOST_DEBUG_POSTFIX "vc90-mt-sgd-1_46_1.lib")
+                       set(BOOST_LIBRARIES
+                               optimized libboost_date_time-${BOOST_POSTFIX} 
libboost_filesystem-${BOOST_POSTFIX}
+                               libboost_regex-${BOOST_POSTFIX} 
libboost_system-${BOOST_POSTFIX} libboost_thread-${BOOST_POSTFIX}
+                               debug libboost_date_time-${BOOST_DEBUG_POSTFIX} 
libboost_filesystem-${BOOST_DEBUG_POSTFIX}
+                               libboost_regex-${BOOST_DEBUG_POSTFIX} 
libboost_system-${BOOST_DEBUG_POSTFIX} libboost_thread-${BOOST_DEBUG_POSTFIX})
                        set(BOOST_LIBPATH ${BOOST}/lib)
                        set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB")
                endif()

Modified: branches/cycles/intern/cycles/blender/blender_mesh.cpp
===================================================================
--- branches/cycles/intern/cycles/blender/blender_mesh.cpp      2011-08-21 
10:14:21 UTC (rev 39579)
+++ branches/cycles/intern/cycles/blender/blender_mesh.cpp      2011-08-21 
10:32:15 UTC (rev 39580)
@@ -62,14 +62,14 @@
        /* create vertices */
        BL::Mesh::vertices_iterator v;
 
-       for(v = b_mesh.vertices.begin(); v != b_mesh.vertices.end(); ++v)
+       for(b_mesh.vertices.begin(v); v != b_mesh.vertices.end(); ++v)
                mesh->verts.push_back(get_float3(v->co()));
 
        /* create faces */
        BL::Mesh::faces_iterator f;
        vector<int> nverts;
 
-       for(f = b_mesh.faces.begin(); f != b_mesh.faces.end(); ++f) {
+       for(b_mesh.faces.begin(f); f != b_mesh.faces.end(); ++f) {
                int4 vi = get_int4(f->vertices_raw());
                int n= (vi[3] == 0)? 3: 4;
                int shader = used_shaders[f->material_index()];
@@ -101,7 +101,7 @@
                BL::Mesh::vertices_iterator v;
                size_t i = 0;
 
-               for(v = b_mesh.vertices.begin(); v != b_mesh.vertices.end(); 
++v)
+               for(b_mesh.vertices.begin(v); v != b_mesh.vertices.end(); ++v)
                        fdata[i++] = get_float3(v->co())*size - loc;
        }
 
@@ -109,7 +109,7 @@
        {
                BL::Mesh::vertex_colors_iterator l;
 
-               for(l = b_mesh.vertex_colors.begin(); l != 
b_mesh.vertex_colors.end(); ++l) {
+               for(b_mesh.vertex_colors.begin(l); l != 
b_mesh.vertex_colors.end(); ++l) {
                        if(!mesh_need_attribute(scene, mesh, 
ustring(l->name())))
                                continue;
 
@@ -120,7 +120,7 @@
                        float3 *fdata = attr->data_float3();
                        size_t i = 0;
 
-                       for(c = l->data.begin(); c != l->data.end(); ++c, ++i) {
+                       for(l->data.begin(c); c != l->data.end(); ++c, ++i) {
                                fdata[0] =  get_float3(c->color1());
                                fdata[1] =  get_float3(c->color2());
                                fdata[2] =  get_float3(c->color3());
@@ -140,7 +140,7 @@
        {
                BL::Mesh::uv_textures_iterator l;
 
-               for(l = b_mesh.uv_textures.begin(); l != 
b_mesh.uv_textures.end(); ++l) {
+               for(b_mesh.uv_textures.begin(l); l != b_mesh.uv_textures.end(); 
++l) {
                        Attribute::Standard std = (l->active_render())? 
Attribute::STD_UV: Attribute::STD_NONE;
                        ustring name = ustring(l->name());
 
@@ -158,7 +158,7 @@
                        float3 *fdata = attr->data_float3();
                        size_t i = 0;
 
-                       for(t = l->data.begin(); t != l->data.end(); ++t, ++i) {
+                       for(l->data.begin(t); t != l->data.end(); ++t, ++i) {
                                fdata[0] =  get_float3(t->uv1());
                                fdata[1] =  get_float3(t->uv2());
                                fdata[2] =  get_float3(t->uv3());
@@ -183,13 +183,13 @@
        /* create vertices */
        BL::Mesh::vertices_iterator v;
 
-       for(v = b_mesh.vertices.begin(); v != b_mesh.vertices.end(); ++v)
+       for(b_mesh.vertices.begin(v); v != b_mesh.vertices.end(); ++v)
                sdmesh.add_vert(get_float3(v->co()));
 
        /* create faces */
        BL::Mesh::faces_iterator f;
 
-       for(f = b_mesh.faces.begin(); f != b_mesh.faces.end(); ++f) {
+       for(b_mesh.faces.begin(f); f != b_mesh.faces.end(); ++f) {
                int4 vi = get_int4(f->vertices_raw());
                int n= (vi[3] == 0)? 3: 4;
                //int shader = used_shaders[f->material_index()];
@@ -223,7 +223,7 @@
        vector<uint> used_shaders;
 
        BL::Object::material_slots_iterator slot;
-       for(slot = b_ob.material_slots.begin(); slot != 
b_ob.material_slots.end(); ++slot)
+       for(b_ob.material_slots.begin(slot); slot != b_ob.material_slots.end(); 
++slot)
                find_shader(slot->material(), used_shaders);
 
        if(used_shaders.size() == 0)

Modified: branches/cycles/intern/cycles/blender/blender_object.cpp
===================================================================
--- branches/cycles/intern/cycles/blender/blender_object.cpp    2011-08-21 
10:14:21 UTC (rev 39579)
+++ branches/cycles/intern/cycles/blender/blender_object.cpp    2011-08-21 
10:32:15 UTC (rev 39580)
@@ -40,7 +40,7 @@
        else {
                /* object level material links */
                BL::Object::material_slots_iterator slot;
-               for(slot = b_ob.material_slots.begin(); slot != 
b_ob.material_slots.end(); ++slot)
+               for(b_ob.material_slots.begin(slot); slot != 
b_ob.material_slots.end(); ++slot)
                        if(slot->link() == BL::MaterialSlot::link_OBJECT)
                                return true;
        }
@@ -144,7 +144,7 @@
        /* object loop */
        BL::Scene::objects_iterator b_ob;
 
-       for(b_ob = b_scene.objects.begin(); b_ob != b_scene.objects.end(); 
++b_ob) {
+       for(b_scene.objects.begin(b_ob); b_ob != b_scene.objects.end(); ++b_ob) 
{
                bool hide = (b_v3d)? b_ob->hide(): b_ob->hide_render();
 
                if(!hide && get_layer(b_ob->layers()) & layer) {
@@ -155,7 +155,7 @@
                                BL::Object::dupli_list_iterator b_dup;
                                int b_index = 0;
 
-                               for(b_dup = b_ob->dupli_list.begin(); b_dup != 
b_ob->dupli_list.end(); ++b_dup) {
+                               for(b_ob->dupli_list.begin(b_dup); b_dup != 
b_ob->dupli_list.end(); ++b_dup) {
                                        Transform tfm = 
get_transform(b_dup->matrix());
                                        sync_object(*b_ob, b_index, 
b_dup->object(), tfm);
                                        b_index++;

Modified: branches/cycles/intern/cycles/blender/blender_session.cpp
===================================================================
--- branches/cycles/intern/cycles/blender/blender_session.cpp   2011-08-21 
10:14:21 UTC (rev 39579)
+++ branches/cycles/intern/cycles/blender/blender_session.cpp   2011-08-21 
10:32:15 UTC (rev 39580)
@@ -148,7 +148,9 @@
        RNA_pointer_create(NULL, &RNA_RenderResult, rrp, &rrptr);
        BL::RenderResult rr(rrptr);
 
-       rna_RenderLayer_rect_set(&rr.layers.begin()->ptr, (float*)&buffer[0]);
+       BL::RenderResult::layers_iterator layer;
+       rr.layers.begin(layer);
+       rna_RenderLayer_rect_set(&layer->ptr, (float*)&buffer[0]);
 
        RE_engine_end_result((RenderEngine*)b_engine.ptr.data, rrp);
 }

Modified: branches/cycles/intern/cycles/blender/blender_shader.cpp
===================================================================
--- branches/cycles/intern/cycles/blender/blender_shader.cpp    2011-08-21 
10:14:21 UTC (rev 39579)
+++ branches/cycles/intern/cycles/blender/blender_shader.cpp    2011-08-21 
10:32:15 UTC (rev 39580)
@@ -54,18 +54,18 @@
 {
        BL::Node::inputs_iterator b_in;
 
-       for(b_in = b_node.inputs.begin(); b_in != b_node.inputs.end(); ++b_in) {
+       for(b_node.inputs.begin(b_in); b_in != b_node.inputs.end(); ++b_in) {
                if(b_in->name() == name) {
                        if(b_group_node) {
 
                                BL::NodeTree b_ntree = 
BL::NodeGroup(*b_group_node).node_tree();
                                BL::NodeTree::links_iterator b_link;
 
-                               for(b_link = b_ntree.links.begin(); b_link != 
b_ntree.links.end(); ++b_link) {
+                               for(b_ntree.links.begin(b_link); b_link != 
b_ntree.links.end(); ++b_link) {
                                        if(b_link->to_socket().ptr.data == 
b_in->ptr.data) {
                                                BL::Node::inputs_iterator b_gin;
 
-                                               for(b_gin = 
b_group_node->inputs.begin(); b_gin != b_group_node->inputs.end(); ++b_gin)
+                                               
for(b_group_node->inputs.begin(b_gin); b_gin != b_group_node->inputs.end(); 
++b_gin)
                                                        
if(b_gin->group_socket().ptr.data == b_link->from_socket().ptr.data)
                                                                return *b_gin;
 
@@ -86,7 +86,7 @@
 {
        BL::Node::outputs_iterator b_out;
 
-       for(b_out = b_node.outputs.begin(); b_out != b_node.outputs.end(); 
++b_out)
+       for(b_node.outputs.begin(b_out); b_out != b_node.outputs.end(); ++b_out)
                if(b_out->name() == name)
                        return *b_out;
 
@@ -405,7 +405,7 @@
        PtrNodeMap node_map;
        map<void*, PtrSockMap> node_groups;
 
-       for(b_node = b_ntree.nodes.begin(); b_node != b_ntree.nodes.end(); 
++b_node) {
+       for(b_ntree.nodes.begin(b_node); b_node != b_ntree.nodes.end(); 
++b_node) {
                if(b_node->is_a(&RNA_NodeGroup)) {
                        BL::NodeGroup b_gnode(*b_node);
                        BL::ShaderNodeTree b_group_ntree(b_gnode.node_tree());
@@ -422,7 +422,7 @@
 
                                node_map[b_node->ptr.data] = node;
 
-                               for(b_input = b_node->inputs.begin(); b_input 
!= b_node->inputs.end(); ++b_input) {
+                               for(b_node->inputs.begin(b_input); b_input != 
b_node->inputs.end(); ++b_input) {
                                        ShaderInput *input = 
node->input(b_input->name().c_str());
                                        BL::NodeSocket 
sock(get_node_input(b_group_node, *b_node, b_input->name()));
 
@@ -458,7 +458,7 @@
        /* connect nodes */
        BL::NodeTree::links_iterator b_link;
 
-       for(b_link = b_ntree.links.begin(); b_link != b_ntree.links.end(); 
++b_link) {
+       for(b_ntree.links.begin(b_link); b_link != b_ntree.links.end(); 
++b_link) {
                /* get blender link data */
                BL::Node b_from_node = b_link->from_node();
                BL::Node b_to_node = b_link->to_node();
@@ -528,7 +528,7 @@
        /* material loop */
        BL::BlendData::materials_iterator b_mat;
 
-       for(b_mat = b_data.materials.begin(); b_mat != b_data.materials.end(); 
++b_mat) {
+       for(b_data.materials.begin(b_mat); b_mat != b_data.materials.end(); 
++b_mat) {
                Shader *shader;
                
                /* test if we need to sync */
@@ -610,7 +610,7 @@
        /* lamp loop */
        BL::BlendData::lamps_iterator b_lamp;
 
-       for(b_lamp = b_data.lamps.begin(); b_lamp != b_data.lamps.end(); 
++b_lamp) {
+       for(b_data.lamps.begin(b_lamp); b_lamp != b_data.lamps.end(); ++b_lamp) 
{
                Shader *shader;
                
                /* test if we need to sync */

Modified: branches/cycles/intern/cycles/blender/blender_sync.cpp

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to