forked from bartvdbraak/blender
Merge branch 'master' into blender2.8
This commit is contained in:
commit
b3545ae373
@ -152,10 +152,9 @@ void IDP_Reset(IDProperty *prop, const IDProperty *reference);
|
||||
# define IDP_Id(prop) ((ID *) (prop)->data.pointer)
|
||||
#endif
|
||||
|
||||
#ifndef NDEBUG
|
||||
/* for printout only */
|
||||
void IDP_spit(IDProperty *prop);
|
||||
#endif
|
||||
/* for printout/logging only */
|
||||
char *IDP_reprN(const struct IDProperty *prop);
|
||||
void IDP_print(const struct IDProperty *prop);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -859,9 +859,9 @@ bool IDP_EqualsProperties_ex(IDProperty *prop1, IDProperty *prop2, const bool is
|
||||
if ((p1 != p2) && ((fabsf(p1 - p2) / max_ff(p1, p2)) < 0.001f)) {
|
||||
printf("WARNING: Comparing two float properties that have nearly the same value (%f vs. %f)\n", p1, p2);
|
||||
printf(" p1: ");
|
||||
IDP_spit(prop1);
|
||||
IDP_print(prop1);
|
||||
printf(" p2: ");
|
||||
IDP_spit(prop2);
|
||||
IDP_print(prop2);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -1107,3 +1107,18 @@ void IDP_Reset(IDProperty *prop, const IDProperty *reference)
|
||||
}
|
||||
|
||||
/** \} */
|
||||
|
||||
/* We could write a C version, see: idprop_py_api.c */
|
||||
#ifndef WITH_PYTHON
|
||||
char *IDP_reprN(IDProperty *UNUSED(prop))
|
||||
{
|
||||
return BLI_strdup("<unsupported>");
|
||||
}
|
||||
|
||||
void IDP_print(IDProperty *prop)
|
||||
{
|
||||
char *repr = IDP_reprN(prop);
|
||||
printf("IDProperty(%p): %s\n", prop, repr);
|
||||
MEM_freeN(repr);
|
||||
}
|
||||
#endif /* WITH_PYTHON */
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "MEM_guardedalloc.h"
|
||||
|
||||
#include "BLI_utildefines.h"
|
||||
#include "BLI_string.h"
|
||||
|
||||
#include "idprop_py_api.h"
|
||||
|
||||
@ -1804,39 +1805,48 @@ PyObject *BPyInit_idprop(void)
|
||||
return mod;
|
||||
}
|
||||
|
||||
|
||||
#ifndef NDEBUG
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* debug only function */
|
||||
|
||||
void IDP_spit(IDProperty *prop)
|
||||
char *IDP_reprN(const IDProperty *prop)
|
||||
{
|
||||
if (prop) {
|
||||
PyGILState_STATE gilstate;
|
||||
bool use_gil = true; /* !PyC_IsInterpreterActive(); */
|
||||
PyObject *ret_dict;
|
||||
PyObject *ret_str;
|
||||
|
||||
if (use_gil) {
|
||||
gilstate = PyGILState_Ensure();
|
||||
}
|
||||
|
||||
/* to_dict() */
|
||||
ret_dict = BPy_IDGroup_MapDataToPy(prop);
|
||||
ret_str = PyObject_Repr(ret_dict);
|
||||
Py_DECREF(ret_dict);
|
||||
|
||||
printf("IDProperty(%p): %s\n", prop, _PyUnicode_AsString(ret_str));
|
||||
|
||||
Py_DECREF(ret_str);
|
||||
|
||||
if (use_gil) {
|
||||
PyGILState_Release(gilstate);
|
||||
}
|
||||
if (prop == NULL) {
|
||||
return BLI_strdup("None");
|
||||
}
|
||||
else {
|
||||
printf("IDProperty: <NIL>\n");
|
||||
|
||||
PyGILState_STATE gilstate;
|
||||
bool use_gil = true; /* !PyC_IsInterpreterActive(); */
|
||||
PyObject *ret_dict;
|
||||
PyObject *ret_str;
|
||||
|
||||
if (use_gil) {
|
||||
gilstate = PyGILState_Ensure();
|
||||
}
|
||||
|
||||
/* Note: non-const cast is safe here since we only repr the result. */
|
||||
/* to_dict() */
|
||||
ret_dict = BPy_IDGroup_MapDataToPy((IDProperty *)prop);
|
||||
ret_str = PyObject_Repr(ret_dict);
|
||||
Py_DECREF(ret_dict);
|
||||
|
||||
Py_ssize_t res_str_len = 0;
|
||||
char *res_str_bytes = _PyUnicode_AsStringAndSize(ret_str, &res_str_len);
|
||||
|
||||
res_str_bytes = BLI_strdupn(res_str_bytes, res_str_len);
|
||||
|
||||
Py_DECREF(ret_str);
|
||||
|
||||
if (use_gil) {
|
||||
PyGILState_Release(gilstate);
|
||||
}
|
||||
return res_str_bytes;
|
||||
}
|
||||
|
||||
|
||||
void IDP_print(const IDProperty *prop)
|
||||
{
|
||||
char *repr = IDP_reprN(prop);
|
||||
printf("IDProperty(%p): %s\n", prop, repr);
|
||||
MEM_freeN(repr);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -1134,9 +1134,9 @@ static wmKeyMapItem *wm_keymap_item_find_handlers(
|
||||
if (kmi->ptr) {
|
||||
if (STREQ("MESH_OT_rip_move", opname)) {
|
||||
printf("OPERATOR\n");
|
||||
IDP_spit(properties);
|
||||
IDP_print(properties);
|
||||
printf("KEYMAP\n");
|
||||
IDP_spit(kmi->ptr->data);
|
||||
IDP_print(kmi->ptr->data);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -1167,9 +1167,9 @@ static wmKeyMapItem *wm_keymap_item_find_handlers(
|
||||
#ifndef NDEBUG
|
||||
#ifdef WITH_PYTHON
|
||||
printf("OPERATOR\n");
|
||||
IDP_spit(properties);
|
||||
IDP_print(properties);
|
||||
printf("KEYMAP\n");
|
||||
IDP_spit(kmi->ptr->data);
|
||||
IDP_print(kmi->ptr->data);
|
||||
#endif
|
||||
#endif
|
||||
printf("\n");
|
||||
@ -1316,9 +1316,9 @@ static wmKeyMapItem *wm_keymap_item_find(
|
||||
#ifndef NDEBUG
|
||||
#ifdef WITH_PYTHON
|
||||
printf("OPERATOR\n");
|
||||
IDP_spit(properties);
|
||||
IDP_print(properties);
|
||||
printf("KEYMAP\n");
|
||||
IDP_spit(kmi->ptr->data);
|
||||
IDP_print(kmi->ptr->data);
|
||||
#endif
|
||||
#endif
|
||||
printf("\n");
|
||||
|
Loading…
Reference in New Issue
Block a user