Jaben,
CommandInit() API initializes gUnicodeCollation pointer.
But ShellCommandLibConstructor() also initializes the gUnicodeCollation pointer.

Can we just remove CommandInit() from this library? And update all callers?

Thanks/Ray

> -----Original Message-----
> From: edk2-devel [mailto:[email protected]] On Behalf Of
> Carsey, Jaben
> Sent: Thursday, June 30, 2016 11:13 PM
> To: Laszlo Ersek <[email protected]>; Qiu, Shumin <[email protected]>
> Cc: Carsey, Jaben <[email protected]>; edk2-devel-01 <edk2-
> [email protected]>
> Subject: Re: [edk2] [PATCH 4/6] ShellPkg: don't call functions with side
> effects in ASSERT_EFI_ERROR()
> 
> Reviewed-by: Jaben Carsey <[email protected]>
> 
> > -----Original Message-----
> > From: Laszlo Ersek [mailto:[email protected]]
> > Sent: Thursday, June 30, 2016 4:07 AM
> > To: Carsey, Jaben <[email protected]>; Qiu, Shumin
> > <[email protected]>
> > Cc: edk2-devel-01 <[email protected]>
> > Subject: Re: [edk2] [PATCH 4/6] ShellPkg: don't call functions with
> > side effects in ASSERT_EFI_ERROR()
> > Importance: High
> >
> > Jaben, Shumin,
> >
> > On 06/28/16 15:25, Laszlo Ersek wrote:
> > > When ASSERT_EFI_ERROR() is compiled out, dependent on build flags,
> > > only the status checking should be removed; the function calls should
> stay.
> > >
> > > Cc: Jaben Carsey <[email protected]>
> > > Cc: Shumin Qiu <[email protected]>
> > > Contributed-under: TianoCore Contribution Agreement 1.0
> > > Signed-off-by: Laszlo Ersek <[email protected]>
> > > ---
> > >
> > > Notes:
> > >     build tested
> > >
> > >  ShellPkg/Library/UefiShellLevel1CommandsLib/If.c | 10 ++++++++--
> > >  ShellPkg/Library/UefiShellLib/UefiShellLib.c     |  5 ++++-
> > >  2 files changed, 12 insertions(+), 3 deletions(-)
> >
> > Can I please get a maintainer review for this patch?
> >
> > Thanks
> > Laszlo
> >
> > > diff --git a/ShellPkg/Library/UefiShellLevel1CommandsLib/If.c
> > b/ShellPkg/Library/UefiShellLevel1CommandsLib/If.c
> > > index 7abfd8944b92..dc96bffde7d3 100644
> > > --- a/ShellPkg/Library/UefiShellLevel1CommandsLib/If.c
> > > +++ b/ShellPkg/Library/UefiShellLevel1CommandsLib/If.c
> > > @@ -991,8 +991,11 @@ ShellCommandRunElse (
> > >    IN EFI_SYSTEM_TABLE  *SystemTable
> > >    )
> > >  {
> > > +  EFI_STATUS  Status;
> > >    SCRIPT_FILE *CurrentScriptFile;
> > > -  ASSERT_EFI_ERROR(CommandInit());
> > > +
> > > +  Status = CommandInit ();
> > > +  ASSERT_EFI_ERROR (Status);
> > >
> > >    if (gEfiShellParametersProtocol->Argc > 1) {
> > >      ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY),
> > gShellLevel1HiiHandle, L"if");
> > > @@ -1066,8 +1069,11 @@ ShellCommandRunEndIf (
> > >    IN EFI_SYSTEM_TABLE  *SystemTable
> > >    )
> > >  {
> > > +  EFI_STATUS  Status;
> > >    SCRIPT_FILE *CurrentScriptFile;
> > > -  ASSERT_EFI_ERROR(CommandInit());
> > > +
> > > +  Status = CommandInit ();
> > > +  ASSERT_EFI_ERROR (Status);
> > >
> > >    if (gEfiShellParametersProtocol->Argc > 1) {
> > >      ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY),
> > gShellLevel1HiiHandle, L"if");
> > > diff --git a/ShellPkg/Library/UefiShellLib/UefiShellLib.c
> > b/ShellPkg/Library/UefiShellLib/UefiShellLib.c
> > > index cf89a4ac87ed..35a1a7169c8b 100644
> > > --- a/ShellPkg/Library/UefiShellLib/UefiShellLib.c
> > > +++ b/ShellPkg/Library/UefiShellLib/UefiShellLib.c
> > > @@ -373,6 +373,8 @@ EFIAPI
> > >  ShellInitialize (
> > >    )
> > >  {
> > > +  EFI_STATUS Status;
> > > +
> > >    //
> > >    // if auto initialize is not false then skip
> > >    //
> > > @@ -383,7 +385,8 @@ ShellInitialize (
> > >    //
> > >    // deinit the current stuff
> > >    //
> > > -  ASSERT_EFI_ERROR(ShellLibDestructor(gImageHandle, gST));
> > > +  Status = ShellLibDestructor (gImageHandle, gST);
> > > + ASSERT_EFI_ERROR (Status);
> > >
> > >    //
> > >    // init the new stuff
> > >
> 
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to