[Bf-blender-cvs] [1ae0a8d760c] functions: Fix ListCPPTypeInfo
Jacques Lucke
noreply at git.blender.org
Wed Mar 20 20:04:40 CET 2019
Commit: 1ae0a8d760cb77e7abbb53861d7ad5edb51bb819
Author: Jacques Lucke
Date: Wed Mar 20 20:03:45 2019 +0100
Branches: functions
https://developer.blender.org/rB1ae0a8d760cb77e7abbb53861d7ad5edb51bb819
Fix ListCPPTypeInfo
===================================================================
M source/blender/functions/types/numeric_lists.cpp
===================================================================
diff --git a/source/blender/functions/types/numeric_lists.cpp b/source/blender/functions/types/numeric_lists.cpp
index 65801a8886d..2f5705d2012 100644
--- a/source/blender/functions/types/numeric_lists.cpp
+++ b/source/blender/functions/types/numeric_lists.cpp
@@ -9,27 +9,22 @@ namespace FN { namespace Types {
template<typename T>
class ListCPPTypeInfo : public CPPTypeInfo {
- private:
- static List<T> *list_from_ptr(void *ptr)
- {
- return ((SharedList<T> *)ptr)->ptr();
- }
public:
uint size_of_type() const override
{
+ static_assert(sizeof(SharedList<T>) == sizeof(void *), "");
return sizeof(SharedList<T>);
}
void construct_default(void *ptr) const override
{
- List<T> *list = new List<T>();
- *(SharedList<T> *)ptr = SharedList<T>::FromPointer(list);
+ *(List<T> **)ptr = new List<T>();
}
void destruct_type(void *ptr) const override
{
- List<T> *list = this->list_from_ptr(ptr);
+ List<T> *list = *(List<T> **)ptr;
list->remove_user();
}
@@ -41,9 +36,9 @@ namespace FN { namespace Types {
void copy_to_uninitialized(void *src, void *dst) const override
{
- List<T> *list = this->list_from_ptr(src);
+ List<T> *list = *(List<T> **)src;
list->new_user();
- *(SharedList<T> *)dst = SharedList<T>::FromPointer(list);
+ *(List<T> **)dst = list;
}
};
More information about the Bf-blender-cvs
mailing list