[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39580] branches/cycles: Cycles: fix some invalid memory access problems found by running the windows build in debug mode .
Brecht Van Lommel
brechtvanlommel at pandora.be
Sun Aug 21 12:32:16 CEST 2011
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. @@
More information about the Bf-blender-cvs
mailing list