Make GS macro return proper IDType type
Previously it was returning short, which was really easy to (a) compare against non-ID type value (b) forget to handle some specific value in switch statement. Both issues happened in the nearest past, so it's time to tighten some nuts here. Most of the change related on silencing strict compiler warning now, but there is also one tricky aspect: ID_NLA is not in the IDType enum. So there is still cast to short to handle that switch. If someone has better ideas how to deal with this please go ahead :)
This commit is contained in:
parent
f4b3678646
commit
2e71927622
|
@ -624,6 +624,8 @@ char *BKE_animdata_driver_path_hack(bContext *C, PointerRNA *ptr, PropertyRNA *p
|
|||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/* fix RNA pointer, as we've now changed the ID root by changing the paths */
|
||||
|
|
|
@ -253,6 +253,8 @@ PreviewImage **BKE_previewimg_id_get_p(const ID *id)
|
|||
ID_PRV_CASE(ID_GR, Group);
|
||||
ID_PRV_CASE(ID_SCE, Scene);
|
||||
#undef ID_PRV_CASE
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
|
|
@ -146,6 +146,9 @@ Key *BKE_key_add(ID *id) /* common function */
|
|||
key->elemsize = 16;
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return key;
|
||||
|
@ -1406,6 +1409,8 @@ Key **BKE_key_from_id_p(ID *id)
|
|||
Lattice *lt = (Lattice *)id;
|
||||
return <->key;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
|
|
@ -361,6 +361,8 @@ Material ***give_matarar_id(ID *id)
|
|||
return &(((Curve *)id)->mat);
|
||||
case ID_MB:
|
||||
return &(((MetaBall *)id)->mat);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
@ -377,6 +379,8 @@ short *give_totcolp_id(ID *id)
|
|||
return &(((Curve *)id)->totcol);
|
||||
case ID_MB:
|
||||
return &(((MetaBall *)id)->totcol);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
@ -396,6 +400,8 @@ static void material_data_index_remove_id(ID *id, short index)
|
|||
case ID_MB:
|
||||
/* meta-elems don't have materials atm */
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -414,6 +420,8 @@ static void material_data_index_clear_id(ID *id)
|
|||
case ID_MB:
|
||||
/* meta-elems don't have materials atm */
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -481,6 +481,8 @@ bool BKE_object_defgroup_array_get(ID *id, MDeformVert **dvert_arr, int *dvert_t
|
|||
*dvert_tot = lt->pntsu * lt->pntsv * lt->pntsw;
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -522,6 +522,8 @@ static void unpack_generate_paths(
|
|||
case ID_IM:
|
||||
BLI_snprintf(r_relpath, relpathlen, "//textures/%s", tempname);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -712,6 +714,8 @@ bool BKE_pack_check(ID *id)
|
|||
Library *li = (Library *)id;
|
||||
return li->packedfile != NULL;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -750,5 +754,7 @@ void BKE_unpack_id(Main *bmain, ID *id, ReportList *reports, int how)
|
|||
BKE_reportf(reports, RPT_ERROR, "Cannot unpack individual Library file, '%s'", li->name);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -377,6 +377,8 @@ static void seqclipboard_ptr_restore(Main *bmain, ID **id_pt)
|
|||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1129,6 +1129,8 @@ void set_active_mtex(ID *id, short act)
|
|||
case ID_PA:
|
||||
((ParticleSettings *)id)->texact = act;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -9912,6 +9912,8 @@ void BLO_expand_main(void *fdhandle, Main *mainvar)
|
|||
case ID_CF:
|
||||
expand_cachefile(fd, mainvar, (CacheFile *)id);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
do_it = true;
|
||||
|
|
|
@ -2247,6 +2247,8 @@ static void animfilter_modifier_idpoin_cb(void *afm_ptr, Object *ob, ID **idpoin
|
|||
}
|
||||
|
||||
/* TODO: images? */
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1052,6 +1052,8 @@ int ANIM_apply_keyingset(bContext *C, ListBase *dsources, bAction *act, KeyingSe
|
|||
DAG_id_tag_update(&ob->id, OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/* send notifiers for updates (this doesn't require context to work!) */
|
||||
|
|
|
@ -238,6 +238,9 @@ bool ED_vgroup_parray_alloc(ID *id, MDeformVert ***dvert_arr, int *dvert_tot, co
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1781,6 +1781,8 @@ static void copy_mtex_copybuf(ID *id)
|
|||
case ID_LS:
|
||||
mtex = &(((FreestyleLineStyle *)id)->mtex[(int)((FreestyleLineStyle *)id)->texact]);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (mtex && *mtex) {
|
||||
|
|
|
@ -1273,7 +1273,10 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto
|
|||
}
|
||||
}
|
||||
else {
|
||||
switch (GS(tselem->id->name)) {
|
||||
/* TODO(sergey): Casting to short here just to handle ID_NLA which is
|
||||
* NOT inside of IDType enum.
|
||||
*/
|
||||
switch ((short)GS(tselem->id->name)) {
|
||||
case ID_SCE:
|
||||
tselem_draw_icon_uibut(&arg, ICON_SCENE_DATA); break;
|
||||
case ID_ME:
|
||||
|
@ -1343,6 +1346,8 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto
|
|||
tselem_draw_icon_uibut(&arg, ICON_LINE_DATA); break;
|
||||
case ID_GD:
|
||||
tselem_draw_icon_uibut(&arg, ICON_GREASEPENCIL); break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -882,6 +882,8 @@ static void outliner_add_id_contents(SpaceOops *soops, TreeElement *te, TreeStor
|
|||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -329,6 +329,8 @@ static void time_draw_idblock_keyframes(View2D *v2d, ID *id, short onlysel)
|
|||
case ID_CF:
|
||||
cachefile_to_keylist(&ads, (CacheFile *)id, &keys, NULL);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/* build linked-list for searching */
|
||||
|
|
|
@ -287,7 +287,7 @@ typedef enum ID_Type {
|
|||
#ifdef GS
|
||||
# undef GS
|
||||
#endif
|
||||
#define GS(a) (CHECK_TYPE_ANY(a, char *, const char *, char [66], const char[66]), (*((const short *)(a))))
|
||||
#define GS(a) (CHECK_TYPE_ANY(a, char *, const char *, char [66], const char[66]), (ID_Type)(*((const short *)(a))))
|
||||
|
||||
#define ID_NEW_SET(_id, _idn) \
|
||||
(((ID *)(_id))->newid = (ID *)(_idn), ((ID *)(_id))->newid->tag |= LIB_TAG_NEW, (void *)((ID *)(_id))->newid)
|
||||
|
|
|
@ -192,6 +192,8 @@ static char *rna_ImageUser_path(PointerRNA *ptr)
|
|||
{
|
||||
return rna_Node_ImageUser_path(ptr);
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -178,6 +178,8 @@ static Mesh *rna_KeyBlock_normals_get_mesh(PointerRNA *ptr, ID *id)
|
|||
return ob->data;
|
||||
}
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1045,6 +1045,8 @@ static void rna_SpaceProperties_pin_id_update(Main *UNUSED(bmain), Scene *UNUSED
|
|||
case ID_LA:
|
||||
WM_main_add_notifier(NC_LAMP, NULL);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -267,6 +267,8 @@ void rna_TextureSlot_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *ptr)
|
|||
WM_main_add_notifier(NC_OBJECT | ND_PARTICLE | NA_EDITED, NULL);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -907,6 +907,8 @@ static char *wm_prop_pystring_from_context(bContext *C, PointerRNA *ptr, Propert
|
|||
CTX_TEST_SPACE_TYPE(SPACE_FILE, "space_data.params", CTX_wm_space_file(C)->params);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (member_id) {
|
||||
|
|
Loading…
Reference in New Issue