RNA: existing type check used wrong identifier

Own error in recent type checks, in many cases the 'idname'
is used for the struct identifier, not the 'identifier'
which is the Python class name in this context.
This commit is contained in:
2017-08-31 18:42:48 +10:00
parent 4f1b510d75
commit 732f70a151
5 changed files with 20 additions and 18 deletions

View File

@@ -273,7 +273,7 @@ static StructRNA *rna_KeyingSetInfo_register(Main *bmain, ReportList *reports, v
if (ksi && ksi->ext.srna) { if (ksi && ksi->ext.srna) {
rna_KeyingSetInfo_unregister(bmain, ksi->ext.srna); rna_KeyingSetInfo_unregister(bmain, ksi->ext.srna);
} }
if (!RNA_struct_available_or_report(reports, identifier)) { if (!RNA_struct_available_or_report(reports, dummyksi.idname)) {
return NULL; return NULL;
} }

View File

@@ -633,7 +633,7 @@ static StructRNA *rna_NodeTree_register(
if (nt) { if (nt) {
rna_NodeTree_unregister(bmain, nt->ext.srna); rna_NodeTree_unregister(bmain, nt->ext.srna);
} }
if (!RNA_struct_available_or_report(reports, identifier)) { if (!RNA_struct_available_or_report(reports, dummynt.idname)) {
return NULL; return NULL;
} }
@@ -1393,16 +1393,13 @@ static bNodeType *rna_Node_register_base(Main *bmain, ReportList *reports, Struc
identifier, (int)sizeof(dummynt.idname)); identifier, (int)sizeof(dummynt.idname));
return NULL; return NULL;
} }
if (!RNA_struct_available_or_report(reports, identifier)) {
return NULL;
}
/* check if we have registered this node type before, and remove it */ /* check if we have registered this node type before, and remove it */
nt = nodeTypeFind(dummynt.idname); nt = nodeTypeFind(dummynt.idname);
if (nt) { if (nt) {
rna_Node_unregister(bmain, nt->ext.srna); rna_Node_unregister(bmain, nt->ext.srna);
} }
if (!RNA_struct_available_or_report(reports, identifier)) { if (!RNA_struct_available_or_report(reports, dummynt.idname)) {
return NULL; return NULL;
} }

View File

@@ -321,7 +321,7 @@ static StructRNA *rna_RenderEngine_register(Main *bmain, ReportList *reports, vo
break; break;
} }
} }
if (!RNA_struct_available_or_report(reports, identifier)) { if (!RNA_struct_available_or_report(reports, dummyet.idname)) {
return NULL; return NULL;
} }

View File

@@ -229,7 +229,7 @@ static StructRNA *rna_Panel_register(Main *bmain, ReportList *reports, void *dat
break; break;
} }
} }
if (!RNA_struct_available_or_report(reports, identifier)) { if (!RNA_struct_available_or_report(reports, dummypt.idname)) {
return NULL; return NULL;
} }
@@ -494,7 +494,7 @@ static StructRNA *rna_UIList_register(Main *bmain, ReportList *reports, void *da
if (ult && ult->ext.srna) { if (ult && ult->ext.srna) {
rna_UIList_unregister(bmain, ult->ext.srna); rna_UIList_unregister(bmain, ult->ext.srna);
} }
if (!RNA_struct_available_or_report(reports, identifier)) { if (!RNA_struct_available_or_report(reports, dummyult.idname)) {
return NULL; return NULL;
} }
@@ -599,7 +599,7 @@ static StructRNA *rna_Header_register(Main *bmain, ReportList *reports, void *da
break; break;
} }
} }
if (!RNA_struct_available_or_report(reports, identifier)) { if (!RNA_struct_available_or_report(reports, dummyht.idname)) {
return NULL; return NULL;
} }
@@ -725,7 +725,7 @@ static StructRNA *rna_Menu_register(Main *bmain, ReportList *reports, void *data
if (mt && mt->ext.srna) { if (mt && mt->ext.srna) {
rna_Menu_unregister(bmain, mt->ext.srna); rna_Menu_unregister(bmain, mt->ext.srna);
} }
if (!RNA_struct_available_or_report(reports, identifier)) { if (!RNA_struct_available_or_report(reports, dummymt.idname)) {
return NULL; return NULL;
} }

View File

@@ -1157,15 +1157,17 @@ static StructRNA *rna_Operator_register(
if (!RNA_struct_available_or_report(reports, identifier)) { if (!RNA_struct_available_or_report(reports, identifier)) {
return NULL; return NULL;
} }
if (!WM_operator_py_idname_ok_or_report(reports, identifier, temp_buffers.idname)) {
char idname_conv[sizeof(dummyop.idname)];
WM_operator_bl_idname(idname_conv, temp_buffers.idname); /* convert the idname from python */
if (!WM_operator_py_idname_ok_or_report(reports, idname_conv, temp_buffers.idname)) {
return NULL; return NULL;
} }
/* Convert foo.bar to FOO_OT_bar /* Convert foo.bar to FOO_OT_bar
* allocate all strings at once. */ * allocate all strings at once. */
{ {
char idname_conv[sizeof(dummyop.idname)];
WM_operator_bl_idname(idname_conv, temp_buffers.idname); /* convert the idname from python */
const char *strings[] = { const char *strings[] = {
idname_conv, idname_conv,
temp_buffers.name, temp_buffers.name,
@@ -1292,18 +1294,21 @@ static StructRNA *rna_MacroOperator_register(
if (ot && ot->ext.srna) if (ot && ot->ext.srna)
rna_Operator_unregister(bmain, ot->ext.srna); rna_Operator_unregister(bmain, ot->ext.srna);
} }
if (!RNA_struct_available_or_report(reports, identifier)) {
if (!WM_operator_py_idname_ok_or_report(reports, identifier, temp_buffers.idname)) {
return NULL; return NULL;
} }
if (!WM_operator_py_idname_ok_or_report(reports, identifier, temp_buffers.idname)) {
char idname_conv[sizeof(dummyop.idname)];
WM_operator_bl_idname(idname_conv, temp_buffers.idname); /* convert the idname from python */
if (!RNA_struct_available_or_report(reports, idname_conv)) {
return NULL; return NULL;
} }
/* Convert foo.bar to FOO_OT_bar /* Convert foo.bar to FOO_OT_bar
* allocate all strings at once. */ * allocate all strings at once. */
{ {
char idname_conv[sizeof(dummyop.idname)];
WM_operator_bl_idname(idname_conv, temp_buffers.idname); /* convert the idname from python */
const char *strings[] = { const char *strings[] = {
idname_conv, idname_conv,
temp_buffers.name, temp_buffers.name,