SMC - performance improvement: unnecessary keys are no longer read.

This commit is contained in:
macmade
2023-02-06 20:05:49 +01:00
parent 5d1b0f79ea
commit 3d7fbb5341
2 changed files with 7 additions and 2 deletions

View File

@@ -33,7 +33,7 @@ NS_ASSUME_NONNULL_BEGIN
@property( class, nonatomic, readonly ) SMC * shared;
- ( instancetype )init;
- ( NSArray< SMCData * > * )readAllKeys;
- ( NSArray< SMCData * > * )readAllKeys: ( BOOL ( ^ _Nullable )( uint32_t ) )filter;
@end

View File

@@ -104,7 +104,7 @@ NS_ASSUME_NONNULL_END
[ self close ];
}
- ( NSArray< SMCData * > * )readAllKeys
- ( NSArray< SMCData * > * )readAllKeys: ( BOOL ( ^ _Nullable )( uint32_t ) )filter
{
if( self.connection == IO_OBJECT_NULL )
{
@@ -135,6 +135,11 @@ NS_ASSUME_NONNULL_END
for( NSNumber * key in self.keys )
{
if( filter == nil || filter( key.unsignedIntValue ) == NO )
{
continue;
}
SMCKeyInfoData info;
uint8_t data[ 32 ];
uint32_t size = sizeof( data );