Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/treetrek.git

Optimizes finfo reads

AuthorDave Jarvis <email>
Date2026-02-20 23:48:37 GMT-0800
Commit48707a6306addcbff3cab2ee3a8c2b7c15644038
Parent805d83a
File.php
private bool $binary;
+ private static ?finfo $finfo = new finfo( FILEINFO_MIME_TYPE );
+
public function __construct(
string $name,
});
}
+
private function detectMediaType( string $buffer ): string {
return $buffer === ''
? self::MEDIA_EMPTY
- : ((new finfo( FILEINFO_MIME_TYPE ))
- ->buffer( substr( $buffer, 0, 256 ) )
+ : (self::$finfo->buffer( substr( $buffer, 0, 256 ) )
?: self::MEDIA_OCTET);
}
git/GitPacks.php
$result = $this->handleRefDelta( $handle, $size, $cap );
} else {
- $result = $this->decompressToString( $handle, $cap );
+ $result = $this->inflate( $handle, $cap );
}
}
- private function decompressToString(
- $handle,
- int $cap = 0
- ): string {
+ private function inflate( $handle, int $cap = 0 ): string {
$stream = CompressionStream::createInflater();
- $res = '';
+ $result = '';
foreach( $stream->stream( $handle ) as $data ) {
- $res .= $data;
+ $result .= $data;
- if( $cap > 0 && strlen( $res ) >= $cap ) {
- $res = substr( $res, 0, $cap );
+ if( $cap > 0 && strlen( $result ) >= $cap ) {
+ $result = substr( $result, 0, $cap );
break;
}
}
- return $res;
+ return $result;
}
Delta11 lines added, 12 lines removed, 1-line decrease