Reviewed-by: Marvin Häuser <mhaeu...@posteo.de> (Please just include this in future revisions, if any)
> On 28. Jul 2022, at 17:26, Savva Mitrofanov <savva...@gmail.com> wrote: > > We shouldn't use direct casts, because in the future it could break > the code, so using BASE_CR would be safe against possible structure > changes and rearrangements > > Cc: Marvin Häuser <mhaeu...@posteo.de> > Cc: Pedro Falcato <pedro.falc...@gmail.com> > Cc: Vitaly Cheptsov <vit9...@protonmail.com> > Signed-off-by: Savva Mitrofanov <savva...@gmail.com> > --- > Features/Ext4Pkg/Ext4Dxe/Ext4Dxe.h | 2 ++ > Features/Ext4Pkg/Ext4Dxe/File.c | 16 ++++++++-------- > 2 files changed, 10 insertions(+), 8 deletions(-) > > diff --git a/Features/Ext4Pkg/Ext4Dxe/Ext4Dxe.h > b/Features/Ext4Pkg/Ext4Dxe/Ext4Dxe.h > index c1df9d1149e4..1e63e6282fa5 100644 > --- a/Features/Ext4Pkg/Ext4Dxe/Ext4Dxe.h > +++ b/Features/Ext4Pkg/Ext4Dxe/Ext4Dxe.h > @@ -382,6 +382,8 @@ struct _Ext4File { > EXT4_DENTRY *Dentry; > }; > > +#define EXT4_FILE_FROM_THIS(This) BASE_CR ((This), EXT4_FILE, Protocol) > + > #define EXT4_FILE_FROM_OPEN_FILES_NODE(Node) > \ > BASE_CR(Node, EXT4_FILE, OpenFilesListNode) > > diff --git a/Features/Ext4Pkg/Ext4Dxe/File.c b/Features/Ext4Pkg/Ext4Dxe/File.c > index ae9230d6422b..b1744ad56c98 100644 > --- a/Features/Ext4Pkg/Ext4Dxe/File.c > +++ b/Features/Ext4Pkg/Ext4Dxe/File.c > @@ -562,7 +562,7 @@ Ext4Open ( > EXT4_FILE *FoundFile; > EXT4_FILE *Source; > > - Source = (EXT4_FILE *)This; > + Source = EXT4_FILE_FROM_THIS (This); > > // > // Reset SymLoops counter > @@ -599,7 +599,7 @@ Ext4Close ( > IN EFI_FILE_PROTOCOL *This > ) > { > - return Ext4CloseInternal ((EXT4_FILE *)This); > + return Ext4CloseInternal (EXT4_FILE_FROM_THIS (This)); > } > > /** > @@ -680,7 +680,7 @@ Ext4ReadFile ( > EXT4_PARTITION *Partition; > EFI_STATUS Status; > > - File = (EXT4_FILE *)This; > + File = EXT4_FILE_FROM_THIS (This); > Partition = File->Partition; > > ASSERT (Ext4FileIsOpenable (File)); > @@ -731,7 +731,7 @@ Ext4WriteFile ( > { > EXT4_FILE *File; > > - File = (EXT4_FILE *)This; > + File = EXT4_FILE_FROM_THIS (This); > > if (!(File->OpenMode & EFI_FILE_MODE_WRITE)) { > return EFI_ACCESS_DENIED; > @@ -761,7 +761,7 @@ Ext4GetPosition ( > { > EXT4_FILE *File; > > - File = (EXT4_FILE *)This; > + File = EXT4_FILE_FROM_THIS (This); > > if (Ext4FileIsDir (File)) { > return EFI_UNSUPPORTED; > @@ -794,7 +794,7 @@ Ext4SetPosition ( > { > EXT4_FILE *File; > > - File = (EXT4_FILE *)This; > + File = EXT4_FILE_FROM_THIS (This); > > // Only seeks to 0 (so it resets the ReadDir operation) are allowed > if (Ext4FileIsDir (File) && (Position != 0)) { > @@ -1062,7 +1062,7 @@ Ext4GetInfo ( > EXT4_FILE *File; > EXT4_PARTITION *Partition; > > - File = (EXT4_FILE *)This; > + File = EXT4_FILE_FROM_THIS (This); > Partition = File->Partition; > > if (CompareGuid (InformationType, &gEfiFileInfoGuid)) { > @@ -1179,7 +1179,7 @@ Ext4SetInfo ( > EXT4_FILE *File; > EXT4_PARTITION *Partition; > > - File = (EXT4_FILE *)This; > + File = EXT4_FILE_FROM_THIS (This); > Partition = File->Partition; > > if (Partition->ReadOnly) { > -- > 2.37.1 > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#91949): https://edk2.groups.io/g/devel/message/91949 Mute This Topic: https://groups.io/mt/92672601/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-