diff options
author | Campbell Barton <ideasman42@gmail.com> | 2016-06-06 12:03:09 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2016-06-06 12:05:21 +0300 |
commit | 5d45ffc755e3c7961cadd007e7440ec1fe8b6dbe (patch) | |
tree | cbd0f466c61a16cba93b44b46b34d2ed528aaa40 | |
parent | 894d24fb16eb1dcfc0ef8c5febde4d7fb072f79b (diff) |
readfile: minor optimization, no need to count flags
in this case we only need to check if any id's need to be read.
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index a6fc2a88d3b..df36def5ba1 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -9990,21 +9990,22 @@ void *BLO_library_read_struct(FileData *fd, BHead *bh, const char *blockname) /* ************* READ LIBRARY ************** */ -static int mainvar_count_libread_blocks(Main *mainvar) +static int mainvar_id_tag_any_check(Main *mainvar, const short tag) { ListBase *lbarray[MAX_LIBARRAY]; - int a, tot = 0; + int a; a = set_listbasepointers(mainvar, lbarray); while (a--) { ID *id; for (id = lbarray[a]->first; id; id = id->next) { - if (id->tag & LIB_TAG_READ) - tot++; + if (id->tag & tag) { + return true; + } } } - return tot; + return false; } static void read_libraries(FileData *basefd, ListBase *mainlist) @@ -10024,10 +10025,9 @@ static void read_libraries(FileData *basefd, ListBase *mainlist) /* test 1: read libdata */ mainptr= mainl->next; while (mainptr) { - int tot = mainvar_count_libread_blocks(mainptr); - - // printf("found LIB_TAG_READ %s\n", mainptr->curlib->name); - if (tot) { + if (mainvar_id_tag_any_check(mainptr, LIB_TAG_READ)) { + // printf("found LIB_TAG_READ %s\n", mainptr->curlib->name); + FileData *fd = mainptr->curlib->filedata; if (fd == NULL) { |