Author: af
Date: Thu Apr 11 13:29:52 2013
New Revision: 1466881

URL: http://svn.apache.org/r1466881
Log:
122027: Fixed crash when processing .uno:NumberType command.
        Reported by:  Ariel Constenla-Haile
        Patch by:  Ariel Constenla-Haile
        Review by: Andre Fischer

Modified:
    openoffice/trunk/main/sc/source/ui/view/formatsh.cxx

Modified: openoffice/trunk/main/sc/source/ui/view/formatsh.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/formatsh.cxx?rev=1466881&r1=1466880&r2=1466881&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/formatsh.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/formatsh.cxx Thu Apr 11 13:29:52 
2013
@@ -1105,47 +1105,51 @@ void ScFormatShell::ExecuteNumFormat( Sf
                        break;
 
                case SID_NUMBER_TYPE_FORMAT:
-                       {
-                               SfxInt16Item aFormatItem((const 
SfxInt16Item&)rReq.GetArgs()->Get(nSlot));
-                               sal_uInt16 nFormat = aFormatItem.GetValue();
-                               switch(nFormat)
-                               {
-                               case 0:
-                                       pTabViewShell->SetNumberFormat( 
NUMBERFORMAT_NUMBER); //Modify
-                                       break;
-                               case 1:
-                                       pTabViewShell->SetNumberFormat( 
NUMBERFORMAT_NUMBER, 2 ); //Modify
-                                       break;
-                               case 2:
-                                       pTabViewShell->SetNumberFormat( 
NUMBERFORMAT_PERCENT );
-                                       break;
-                               case 3:
-                                       pTabViewShell->SetNumberFormat( 
NUMBERFORMAT_CURRENCY );
-                                       break;
-                               case 4:
-                                       pTabViewShell->SetNumberFormat( 
NUMBERFORMAT_DATE );
-                                       break;
-                               case 5:
-                                       pTabViewShell->SetNumberFormat( 
NUMBERFORMAT_TIME );
-                                       break;
-                               case 6:
-                                       pTabViewShell->SetNumberFormat( 
NUMBERFORMAT_SCIENTIFIC );
-                                       break;
-                               case 7:
-                                       pTabViewShell->SetNumberFormat( 
NUMBERFORMAT_FRACTION );
-                                       break;
-                               case 8:
-                                       pTabViewShell->SetNumberFormat( 
NUMBERFORMAT_LOGICAL );
-                                       break;
-                               case 9:
-                                       pTabViewShell->SetNumberFormat( 
NUMBERFORMAT_TEXT );
-                                       break;
-                               default:
-                                       ;
-                               }       
-                               rReq.Done();
-                       }
-                       break;
+            if ( pReqArgs )
+            {
+                const SfxPoolItem* pItem;
+                if ( pReqArgs->GetItemState( nSlot, sal_True, &pItem ) == 
SFX_ITEM_SET )
+                {
+                    sal_uInt16 nFormat = ((SfxInt16Item *)pItem)->GetValue();
+                    switch(nFormat)
+                    {
+                    case 0:
+                        pTabViewShell->SetNumberFormat( NUMBERFORMAT_NUMBER); 
//Modify
+                        break;
+                    case 1:
+                        pTabViewShell->SetNumberFormat( NUMBERFORMAT_NUMBER, 2 
); //Modify
+                        break;
+                    case 2:
+                        pTabViewShell->SetNumberFormat( NUMBERFORMAT_PERCENT );
+                        break;
+                    case 3:
+                        pTabViewShell->SetNumberFormat( NUMBERFORMAT_CURRENCY 
);
+                        break;
+                    case 4:
+                        pTabViewShell->SetNumberFormat( NUMBERFORMAT_DATE );
+                        break;
+                    case 5:
+                        pTabViewShell->SetNumberFormat( NUMBERFORMAT_TIME );
+                        break;
+                    case 6:
+                        pTabViewShell->SetNumberFormat( 
NUMBERFORMAT_SCIENTIFIC );
+                        break;
+                    case 7:
+                        pTabViewShell->SetNumberFormat( NUMBERFORMAT_FRACTION 
);
+                        break;
+                    case 8:
+                        pTabViewShell->SetNumberFormat( NUMBERFORMAT_LOGICAL );
+                        break;
+                    case 9:
+                        pTabViewShell->SetNumberFormat( NUMBERFORMAT_TEXT );
+                        break;
+                    default:
+                        ;
+                    }
+                    rReq.Done();
+                }
+            }
+            break;
 
         default:
                        DBG_ERROR("falscher Slot bei ExecuteEdit");


Reply via email to