svn merge -r 39975:40061 https://svn.blender.org/svnroot/bf-blender/trunk/blender
This commit is contained in:
@@ -324,17 +324,14 @@ static void setup_app_data(bContext *C, BlendFileData *bfd, const char *filepath
|
||||
MEM_freeN(bfd);
|
||||
}
|
||||
|
||||
static int handle_subversion_warning(Main *main)
|
||||
static int handle_subversion_warning(Main *main, ReportList *reports)
|
||||
{
|
||||
if(main->minversionfile > BLENDER_VERSION ||
|
||||
(main->minversionfile == BLENDER_VERSION &&
|
||||
main->minsubversionfile > BLENDER_SUBVERSION)) {
|
||||
|
||||
char str[128];
|
||||
|
||||
BLI_snprintf(str, sizeof(str), "File written by newer Blender binary: %d.%d , expect loss of data!", main->minversionfile, main->minsubversionfile);
|
||||
// XXX error(str);
|
||||
BKE_reportf(reports, RPT_ERROR, "File written by newer Blender binary: %d.%d , expect loss of data!", main->minversionfile, main->minsubversionfile);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -392,7 +389,7 @@ int BKE_read_file(bContext *C, const char *filepath, ReportList *reports)
|
||||
if (bfd) {
|
||||
if(bfd->user) retval= BKE_READ_FILE_OK_USERPREFS;
|
||||
|
||||
if(0==handle_subversion_warning(bfd->main)) {
|
||||
if(0==handle_subversion_warning(bfd->main, reports)) {
|
||||
free_main(bfd->main);
|
||||
MEM_freeN(bfd);
|
||||
bfd= NULL;
|
||||
|
||||
@@ -398,6 +398,11 @@ bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node)
|
||||
sock->stack_index= 0;
|
||||
|
||||
sock->default_value = (oldsock->default_value ? MEM_dupallocN(oldsock->default_value) : NULL);
|
||||
|
||||
/* XXX some compositor node (e.g. image, render layers) still store
|
||||
* some persistent buffer data here, need to clear this to avoid dangling pointers.
|
||||
*/
|
||||
sock->cache = NULL;
|
||||
}
|
||||
|
||||
BLI_duplicatelist(&nnode->outputs, &node->outputs);
|
||||
@@ -407,6 +412,11 @@ bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node)
|
||||
sock->stack_index= 0;
|
||||
|
||||
sock->default_value = (oldsock->default_value ? MEM_dupallocN(oldsock->default_value) : NULL);
|
||||
|
||||
/* XXX some compositor node (e.g. image, render layers) still store
|
||||
* some persistent buffer data here, need to clear this to avoid dangling pointers.
|
||||
*/
|
||||
sock->cache = NULL;
|
||||
}
|
||||
|
||||
/* don't increase node->id users, freenode doesn't decrement either */
|
||||
@@ -1524,21 +1534,25 @@ void NodeTagChanged(bNodeTree *ntree, bNode *node)
|
||||
{
|
||||
bNodeTreeType *ntreetype = ntreeGetType(ntree->type);
|
||||
|
||||
if (ntreetype->update_node)
|
||||
/* extra null pointer checks here because this is called when unlinking
|
||||
unknown nodes on file load, so typeinfo pointers may not be set */
|
||||
if (ntreetype && ntreetype->update_node)
|
||||
ntreetype->update_node(ntree, node);
|
||||
else if (node->typeinfo->updatefunc)
|
||||
else if (node->typeinfo && node->typeinfo->updatefunc)
|
||||
node->typeinfo->updatefunc(ntree, node);
|
||||
}
|
||||
|
||||
int NodeTagIDChanged(bNodeTree *ntree, ID *id)
|
||||
{
|
||||
bNodeTreeType *ntreetype = ntreeGetType(ntree->type);
|
||||
bNodeTreeType *ntreetype;
|
||||
bNode *node;
|
||||
int change = FALSE;
|
||||
|
||||
if(ELEM(NULL, id, ntree))
|
||||
return change;
|
||||
|
||||
ntreetype = ntreeGetType(ntree->type);
|
||||
|
||||
if (ntreetype->update_node) {
|
||||
for(node= ntree->nodes.first; node; node= node->next) {
|
||||
if(node->id==id) {
|
||||
|
||||
Reference in New Issue
Block a user