From f93bc7693a530632455d3ec7acc4bce54a1f85bc Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Wed, 9 Apr 2014 18:54:13 +0600 Subject: Backport revisions for the 2.70a release d2660a0, 6e99fb0, 58c22d8, 83f2012 + ff21f6a, a7ed1db. cc6b106 7997e38, 9d4b54b, efb48fc, 3fc293c, 29f359c, 77c1d17, 92a539e, c626462, f48828b, 6452d9f, 765d077, 74518b2, af16d46, 8da4936, 6babbf5, f0106d2, f88776b, ee72cba, 467596d, e21a7b3, eed3974, 71a2ff1, ccf9afd, 44d6c68, 30fdfc3, b69809c, b0a8e4c, bd57ec6, 3b0832d, 2a25676, 3977b76, fb25a86, 9bbb30b, 51abc2b, 0ebade5, 2c0e32f, 3deaf7d, ea01b24, c61eb64, f3db038, a6fb670, eedde31, b66a954, 7ff123c, f5b79df, 7148c97, 54a8753, fcaa018, 4c73001, 7a21330, 07578be, e9a64e2, fd3de8b, ae792e9, b7712a7 + 3600622, d9557d0, 6d973b8, 688257d, 4acb57a, 95ac6bc, Also backported openmp changes to sculpt making it so number of real CPU cores is used as a number of threads here. --- source/blender/blenkernel/intern/library.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'source/blender/blenkernel/intern/library.c') diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index 0bd1f97a279..f831378ca5a 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -808,6 +808,32 @@ void *BKE_libblock_copy_ex(Main *bmain, ID *id) return idn; } +void *BKE_libblock_copy_nolib(ID *id) +{ + ID *idn; + size_t idn_len; + + idn = alloc_libblock_notest(GS(id->name)); + assert(idn != NULL); + + BLI_strncpy(idn->name, id->name, sizeof(idn->name)); + + idn_len = MEM_allocN_len(idn); + if ((int)idn_len - (int)sizeof(ID) > 0) { /* signed to allow neg result */ + const char *cp = (const char *)id; + char *cpn = (char *)idn; + + memcpy(cpn + sizeof(ID), cp + sizeof(ID), idn_len - sizeof(ID)); + } + + id->newid = idn; + idn->flag |= LIB_NEW; + + BKE_libblock_copy_data(idn, id, false); + + return idn; +} + void *BKE_libblock_copy(ID *id) { return BKE_libblock_copy_ex(G.main, id); -- cgit v1.2.3