Merge branch 'master' into blender2.8

This commit is contained in:
2017-10-18 17:09:41 +11:00
183 changed files with 1412 additions and 1371 deletions

View File

@@ -60,7 +60,7 @@ enum {
extern BPy_StructRNA *bpy_context_module;
static EnumPropertyItem property_flag_items[] = {
static const EnumPropertyItem property_flag_items[] = {
{PROP_HIDDEN, "HIDDEN", 0, "Hidden", ""},
{PROP_SKIP_SAVE, "SKIP_SAVE", 0, "Skip Save", ""},
{PROP_ANIMATABLE, "ANIMATABLE", 0, "Animatable", ""},
@@ -74,7 +74,7 @@ static EnumPropertyItem property_flag_items[] = {
"'TEXTEDIT_UPDATE'].\n" \
" :type options: set\n" \
static EnumPropertyItem property_flag_enum_items[] = {
static const EnumPropertyItem property_flag_enum_items[] = {
{PROP_HIDDEN, "HIDDEN", 0, "Hidden", ""},
{PROP_SKIP_SAVE, "SKIP_SAVE", 0, "Skip Save", ""},
{PROP_ANIMATABLE, "ANIMATABLE", 0, "Animatable", ""},
@@ -90,7 +90,7 @@ static EnumPropertyItem property_flag_enum_items[] = {
/* XXX Keep in sync with rna_rna.c's rna_enum_property_subtype_items ???
* Currently it is not...
*/
static EnumPropertyItem property_subtype_string_items[] = {
static const EnumPropertyItem property_subtype_string_items[] = {
{PROP_FILEPATH, "FILE_PATH", 0, "File Path", ""},
{PROP_DIRPATH, "DIR_PATH", 0, "Directory Path", ""},
{PROP_FILENAME, "FILE_NAME", 0, "Filename", ""},
@@ -104,7 +104,7 @@ static EnumPropertyItem property_subtype_string_items[] = {
" :arg subtype: Enumerator in ['FILE_PATH', 'DIR_PATH', 'FILE_NAME', 'BYTE_STRING', 'PASSWORD', 'NONE'].\n" \
" :type subtype: string\n" \
static EnumPropertyItem property_subtype_number_items[] = {
static const EnumPropertyItem property_subtype_number_items[] = {
{PROP_PIXEL, "PIXEL", 0, "Pixel", ""},
{PROP_UNSIGNED, "UNSIGNED", 0, "Unsigned", ""},
{PROP_PERCENTAGE, "PERCENTAGE", 0, "Percentage", ""},
@@ -120,7 +120,7 @@ static EnumPropertyItem property_subtype_number_items[] = {
" :arg subtype: Enumerator in ['PIXEL', 'UNSIGNED', 'PERCENTAGE', 'FACTOR', 'ANGLE', 'TIME', 'DISTANCE', 'NONE'].\n" \
" :type subtype: string\n" \
static EnumPropertyItem property_subtype_array_items[] = {
static const EnumPropertyItem property_subtype_array_items[] = {
{PROP_COLOR, "COLOR", 0, "Color", ""},
{PROP_TRANSLATION, "TRANSLATION", 0, "Translation", ""},
{PROP_DIRECTION, "DIRECTION", 0, "Direction", ""},
@@ -1335,7 +1335,7 @@ static size_t strswapbufcpy(char *buf, const char **orig)
static int icon_id_from_name(const char *name)
{
EnumPropertyItem *item;
const EnumPropertyItem *item;
int id;
if (name[0]) {
@@ -1349,7 +1349,7 @@ static int icon_id_from_name(const char *name)
return 0;
}
static EnumPropertyItem *enum_items_from_py(PyObject *seq_fast, PyObject *def, int *defvalue, const bool is_enum_flag)
static const EnumPropertyItem *enum_items_from_py(PyObject *seq_fast, PyObject *def, int *defvalue, const bool is_enum_flag)
{
EnumPropertyItem *items;
PyObject *item;
@@ -1505,7 +1505,7 @@ static EnumPropertyItem *enum_items_from_py(PyObject *seq_fast, PyObject *def, i
return items;
}
static EnumPropertyItem *bpy_prop_enum_itemf_cb(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, bool *r_free)
static const EnumPropertyItem *bpy_prop_enum_itemf_cb(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, bool *r_free)
{
PyGILState_STATE gilstate;
@@ -1514,7 +1514,7 @@ static EnumPropertyItem *bpy_prop_enum_itemf_cb(struct bContext *C, PointerRNA *
PyObject *args;
PyObject *items; /* returned from the function call */
EnumPropertyItem *eitems = NULL;
const EnumPropertyItem *eitems = NULL;
int err = 0;
if (C) {
@@ -2748,7 +2748,7 @@ static PyObject *BPy_EnumProperty(PyObject *self, PyObject *args, PyObject *kw)
int id_len;
int defvalue = 0;
PyObject *items, *items_fast;
EnumPropertyItem *eitems;
const EnumPropertyItem *eitems;
PropertyRNA *prop;
PyObject *pyopts = NULL;
int opts = 0;
@@ -2841,7 +2841,7 @@ static PyObject *BPy_EnumProperty(PyObject *self, PyObject *args, PyObject *kw)
* otherwise if this is a generator it may free the strings before we copy them */
Py_DECREF(items_fast);
MEM_freeN(eitems);
MEM_freeN((void *)eitems);
}
}
Py_RETURN_NONE;

View File

@@ -758,7 +758,7 @@ thick_wrap_slice:
/* same as RNA_enum_value_from_id but raises an exception */
int pyrna_enum_value_from_id(
EnumPropertyItem *item, const char *identifier, int *r_value,
const EnumPropertyItem *item, const char *identifier, int *r_value,
const char *error_prefix)
{
if (RNA_enum_value_from_id(item, identifier, r_value) == 0) {
@@ -1167,7 +1167,7 @@ static void pyrna_prop_array_dealloc(BPy_PropertyRNA *self)
static const char *pyrna_enum_as_string(PointerRNA *ptr, PropertyRNA *prop)
{
EnumPropertyItem *item;
const EnumPropertyItem *item;
const char *result;
bool free = false;
@@ -1179,8 +1179,9 @@ static const char *pyrna_enum_as_string(PointerRNA *ptr, PropertyRNA *prop)
result = "";
}
if (free)
MEM_freeN(item);
if (free) {
MEM_freeN((void *)item);
}
return result;
}
@@ -1221,7 +1222,7 @@ static int pyrna_string_to_enum(
* needed when we want to use the full range of a signed short/char.
*/
BLI_bitmap *pyrna_set_to_enum_bitmap(
EnumPropertyItem *items, PyObject *value,
const EnumPropertyItem *items, PyObject *value,
int type_size, bool type_convert_sign,
int bitmap_size,
const char *error_prefix)
@@ -1277,7 +1278,7 @@ error:
/* 'value' _must_ be a set type, error check before calling */
int pyrna_set_to_enum_bitfield(
EnumPropertyItem *items, PyObject *value, int *r_value,
const EnumPropertyItem *items, PyObject *value, int *r_value,
const char *error_prefix)
{
/* set of enum items, concatenate all values with OR */
@@ -1315,7 +1316,7 @@ static int pyrna_prop_to_enum_bitfield(
PointerRNA *ptr, PropertyRNA *prop, PyObject *value, int *r_value,
const char *error_prefix)
{
EnumPropertyItem *item;
const EnumPropertyItem *item;
int ret;
bool free = false;
@@ -1346,13 +1347,14 @@ static int pyrna_prop_to_enum_bitfield(
}
}
if (free)
MEM_freeN(item);
if (free) {
MEM_freeN((void *)item);
}
return ret;
}
PyObject *pyrna_enum_bitfield_to_py(EnumPropertyItem *items, int value)
PyObject *pyrna_enum_bitfield_to_py(const EnumPropertyItem *items, int value)
{
PyObject *ret = PySet_New(NULL);
const char *identifier[RNA_ENUM_BITFLAG_SIZE + 1];
@@ -1396,7 +1398,7 @@ static PyObject *pyrna_enum_to_py(PointerRNA *ptr, PropertyRNA *prop, int val)
ret = PyUnicode_FromString(identifier);
}
else {
EnumPropertyItem *enum_item;
const EnumPropertyItem *enum_item;
bool free;
/* don't throw error here, can't trust blender 100% to give the
@@ -1407,7 +1409,7 @@ static PyObject *pyrna_enum_to_py(PointerRNA *ptr, PropertyRNA *prop, int val)
}
else {
if (free) {
MEM_freeN(enum_item);
MEM_freeN((void *)enum_item);
}
RNA_property_enum_items(NULL, ptr, prop, &enum_item, NULL, &free);
@@ -1439,8 +1441,9 @@ static PyObject *pyrna_enum_to_py(PointerRNA *ptr, PropertyRNA *prop, int val)
ret = PyUnicode_FromString("");
}
if (free)
MEM_freeN(enum_item);
if (free) {
MEM_freeN((void *)enum_item);
}
#if 0
PyErr_Format(PyExc_AttributeError,
"RNA Error: Current value \"%d\" matches no enum", val);

View File

@@ -186,14 +186,17 @@ int pyrna_pydict_to_props(PointerRNA *ptr, PyObject *kw, const bool all_args, co
PyObject *pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop);
unsigned int *pyrna_set_to_enum_bitmap(
struct EnumPropertyItem *items, PyObject *value,
const struct EnumPropertyItem *items, PyObject *value,
int type_size, bool type_convert_sign,
int bitmap_size,
const char *error_prefix);
PyObject *pyrna_enum_bitfield_to_py(struct EnumPropertyItem *items, int value);
int pyrna_set_to_enum_bitfield(EnumPropertyItem *items, PyObject *value, int *r_value, const char *error_prefix);
PyObject *pyrna_enum_bitfield_to_py(
const struct EnumPropertyItem *items, int value);
int pyrna_set_to_enum_bitfield(
const struct EnumPropertyItem *items, PyObject *value, int *r_value, const char *error_prefix);
int pyrna_enum_value_from_id(EnumPropertyItem *item, const char *identifier, int *value, const char *error_prefix);
int pyrna_enum_value_from_id(
const EnumPropertyItem *item, const char *identifier, int *value, const char *error_prefix);
int pyrna_deferred_register_class(struct StructRNA *srna, PyTypeObject *py_class);

View File

@@ -53,7 +53,7 @@
#define RNA_CAPSULE_ID "RNA_HANDLE"
#define RNA_CAPSULE_ID_INVALID "RNA_HANDLE_REMOVED"
static EnumPropertyItem region_draw_mode_items[] = {
static const EnumPropertyItem region_draw_mode_items[] = {
{REGION_DRAW_POST_PIXEL, "POST_PIXEL", 0, "Post Pixel", ""},
{REGION_DRAW_POST_VIEW, "POST_VIEW", 0, "Post View", ""},
{REGION_DRAW_PRE_VIEW, "PRE_VIEW", 0, "Pre View", ""},

View File

@@ -47,10 +47,10 @@ static bContext *__py_context = NULL;
bContext *BPy_GetContext(void) { return __py_context; }
void BPy_SetContext(bContext *C) { __py_context = C; }
char *BPy_enum_as_string(EnumPropertyItem *item)
char *BPy_enum_as_string(const EnumPropertyItem *item)
{
DynStr *dynstr = BLI_dynstr_new();
EnumPropertyItem *e;
const EnumPropertyItem *e;
char *cstring;
for (e = item; item->identifier; item++) {

View File

@@ -34,7 +34,7 @@
struct EnumPropertyItem;
struct ReportList;
char *BPy_enum_as_string(struct EnumPropertyItem *item);
char *BPy_enum_as_string(const struct EnumPropertyItem *item);
#define BLANK_PYTHON_TYPE {PyVarObject_HEAD_INIT(NULL, 0) NULL}