mirror of
https://github.com/winfsp/winfsp.git
synced 2026-03-06 07:39:33 -06:00
sys: avoid using FspFsextProvider unnecessarily
This commit is contained in:
@@ -28,7 +28,7 @@
|
||||
* the data structure used to store providers (currently 2 parallel
|
||||
* arrays) must be revisited.
|
||||
*/
|
||||
#define FSP_FSEXT_PROVIDER_COUNTMAX 4
|
||||
#define FSP_FSEXT_PROVIDER_COUNTMAX 16
|
||||
|
||||
static KSPIN_LOCK FsextSpinLock = 0;
|
||||
static UINT32 FsextControlCodes[FSP_FSEXT_PROVIDER_COUNTMAX];
|
||||
@@ -37,23 +37,9 @@ static FSP_FSEXT_PROVIDER *FsextProviders[FSP_FSEXT_PROVIDER_COUNTMAX];
|
||||
static inline
|
||||
FSP_FSEXT_PROVIDER *FspFsextProviderGet(UINT32 FsextControlCode)
|
||||
{
|
||||
#if 0
|
||||
for (ULONG I = 0; FSP_FSEXT_PROVIDER_COUNTMAX > I; I++)
|
||||
if (FsextControlCode == FsextControlCodes[I])
|
||||
return FsextProviders[I];
|
||||
#else
|
||||
/* unroll by hand */
|
||||
FSP_FSCTL_STATIC_ASSERT(4 == FSP_FSEXT_PROVIDER_COUNTMAX,
|
||||
"unrolled loop expects FsextProviders to have 4 elements");
|
||||
if (FsextControlCode == FsextControlCodes[0])
|
||||
return FsextProviders[0];
|
||||
if (FsextControlCode == FsextControlCodes[1])
|
||||
return FsextProviders[1];
|
||||
if (FsextControlCode == FsextControlCodes[2])
|
||||
return FsextProviders[2];
|
||||
if (FsextControlCode == FsextControlCodes[3])
|
||||
return FsextProviders[3];
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user