1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 04:22:20 +02:00

Added reflect method filters

This commit is contained in:
Brian Fiete 2020-07-14 08:27:25 -07:00
parent f566daacea
commit f9c0f2a311
9 changed files with 204 additions and 112 deletions

View file

@ -3666,7 +3666,21 @@ BF_EXPORT void BF_CALLTYPE BfSystem_AddTypeOptions(BfSystem* bfSystem, char* fil
typeOptions.mOrFlags = (BfOptionFlags)orFlags;
typeOptions.mAllocStackTraceDepth = allocStackTraceDepth;
_ParseFilters(reflectMethodFilter, typeOptions.mReflectMethodFilters, typeOptions.mReflectMethodAttributeFilters);
Array<String> methodReflectFilters;
Array<String> methodReflectAttributeFilters;
_ParseFilters(reflectMethodFilter, methodReflectFilters, methodReflectAttributeFilters);
// When we have method filters we want to apply those to the methods for when we merge options
if ((!methodReflectFilters.IsEmpty()) || (!methodReflectAttributeFilters.IsEmpty()))
{
for (auto& filter : methodReflectFilters)
typeOptions.mReflectMethodFilters.Add({ filter, (BfOptionFlags)andFlags, (BfOptionFlags)orFlags });
for (auto& filter : methodReflectAttributeFilters)
typeOptions.mReflectMethodAttributeFilters.Add({ filter, (BfOptionFlags)andFlags, (BfOptionFlags)orFlags });
typeOptions.mAndFlags = (BfOptionFlags)(typeOptions.mAndFlags | BfOptionFlags_Reflect_MethodMask);
typeOptions.mOrFlags = (BfOptionFlags)(typeOptions.mOrFlags & ~BfOptionFlags_Reflect_MethodMask);
}
bfSystem->mTypeOptions.push_back(typeOptions);
}