Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
81605eaa
Kaydet (Commit)
81605eaa
authored
Ock 20, 2012
tarafından
August Sodora
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Replace BasicErrorManager with std::vector
üst
cce52394
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
21 additions
and
102 deletions
+21
-102
basmgr.hxx
basic/inc/basic/basmgr.hxx
+5
-8
basicmanagerrepository.cxx
basic/source/basmgr/basicmanagerrepository.cxx
+4
-5
basmgr.cxx
basic/source/basmgr/basmgr.cxx
+12
-89
No files found.
basic/inc/basic/basmgr.hxx
Dosyayı görüntüle @
81605eaa
...
...
@@ -34,6 +34,7 @@
#include <com/sun/star/script/XStorageBasedLibraryContainer.hpp>
#include <com/sun/star/script/XStarBasicAccess.hpp>
#include "basicdllapi.h"
#include <vector>
// Basic XML Import/Export
BASIC_DLLPUBLIC
com
::
sun
::
star
::
uno
::
Reference
<
com
::
sun
::
star
::
script
::
XStarBasicAccess
>
...
...
@@ -72,12 +73,10 @@ public:
void
SetErrorStr
(
const
String
&
rStr
)
{
aErrStr
=
rStr
;
}
};
class
BasicLibs
;
class
ErrorManager
;
class
BasicLibInfo
;
class
BasicErrorManager
;
namespace
basic
{
class
BasicManagerCleaner
;
}
// Library password handling for 5.0 documents
...
...
@@ -127,7 +126,7 @@ class BASIC_DLLPUBLIC BasicManager : public SfxBroadcaster
private
:
BasicLibs
*
pLibs
;
BasicErrorManager
*
pErrorMgr
;
std
::
vector
<
BasicError
>
aErrors
;
String
aName
;
String
maStorageName
;
...
...
@@ -140,7 +139,7 @@ private:
protected
:
sal_Bool
ImpLoadLibary
(
BasicLibInfo
*
pLibInfo
)
const
;
sal_Bool
ImpLoadLibary
(
BasicLibInfo
*
pLibInfo
,
SotStorage
*
pCurStorage
,
sal_Bool
bInfosOnly
=
sal_False
)
const
;
sal_Bool
ImpLoadLibary
(
BasicLibInfo
*
pLibInfo
,
SotStorage
*
pCurStorage
,
sal_Bool
bInfosOnly
=
sal_False
);
void
ImpCreateStdLib
(
StarBASIC
*
pParentFromStdLib
);
void
ImpMgrNotLoaded
(
const
String
&
rStorageName
);
BasicLibInfo
*
CreateLibInfo
();
...
...
@@ -198,9 +197,7 @@ public:
sal_Bool
IsModified
()
const
;
sal_Bool
IsBasicModified
()
const
;
sal_Bool
HasErrors
();
BasicError
*
GetFirstError
();
BasicError
*
GetNextError
();
std
::
vector
<
BasicError
>&
GetErrors
();
/** sets a global constant in the basic library, referring to some UNO object, to a new value.
...
...
basic/source/basmgr/basicmanagerrepository.cxx
Dosyayı görüntüle @
81605eaa
...
...
@@ -454,21 +454,20 @@ namespace basic
_out_rpBasicManager
=
new
BasicManager
(
*
xDummyStor
,
String
()
/* TODO/LATER: xStorage */
,
pAppBasic
,
&
aAppBasicDir
,
sal_True
);
if
(
_out_rpBasicManager
->
HasErrors
()
)
if
(
!
_out_rpBasicManager
->
GetErrors
().
empty
()
)
{
// handle errors
BasicError
*
pErr
=
_out_rpBasicManager
->
GetFirstError
();
while
(
pErr
)
std
::
vector
<
BasicError
>&
aErrors
=
_out_rpBasicManager
->
GetErrors
();
for
(
std
::
vector
<
BasicError
>::
const_iterator
i
=
aErrors
.
begin
();
i
!=
aErrors
.
end
();
++
i
)
{
// show message to user
if
(
ERRCODE_BUTTON_CANCEL
==
ErrorHandler
::
HandleError
(
pErr
->
GetErrorId
()
)
)
if
(
ERRCODE_BUTTON_CANCEL
==
ErrorHandler
::
HandleError
(
i
->
GetErrorId
()
)
)
{
// user wants to break loading of BASIC-manager
BasicManagerCleaner
::
deleteBasicManager
(
_out_rpBasicManager
);
xStorage
.
clear
();
break
;
}
pErr
=
_out_rpBasicManager
->
GetNextError
();
}
}
}
...
...
basic/source/basmgr/basmgr.cxx
Dosyayı görüntüle @
81605eaa
...
...
@@ -382,68 +382,6 @@ void SAL_CALL BasMgrContainerListenerImpl::elementRemoved( const ContainerEvent&
}
}
//=====================================================================
class
BasicErrorManager
{
private
:
BasErrorLst
aErrorList
;
size_t
CurrentError
;
public
:
BasicErrorManager
();
~
BasicErrorManager
();
void
Reset
();
void
InsertError
(
const
BasicError
&
rError
);
bool
HasErrors
()
{
return
!
aErrorList
.
empty
();
}
BasicError
*
GetFirstError
();
BasicError
*
GetNextError
();
};
BasicErrorManager
::
BasicErrorManager
()
:
CurrentError
(
0
)
{
}
BasicErrorManager
::~
BasicErrorManager
()
{
Reset
();
}
void
BasicErrorManager
::
Reset
()
{
for
(
size_t
i
=
0
,
n
=
aErrorList
.
size
();
i
<
n
;
++
i
)
delete
aErrorList
[
i
];
aErrorList
.
clear
();
}
void
BasicErrorManager
::
InsertError
(
const
BasicError
&
rError
)
{
aErrorList
.
push_back
(
new
BasicError
(
rError
)
);
}
BasicError
*
BasicErrorManager
::
GetFirstError
()
{
CurrentError
=
0
;
return
aErrorList
.
empty
()
?
NULL
:
aErrorList
[
CurrentError
];
}
BasicError
*
BasicErrorManager
::
GetNextError
()
{
if
(
!
aErrorList
.
empty
()
&&
CurrentError
<
(
aErrorList
.
size
()
-
1
)
)
{
++
CurrentError
;
return
aErrorList
[
CurrentError
];
}
return
NULL
;
}
BasicError
::
BasicError
(
sal_uIntPtr
nId
,
sal_uInt16
nR
,
const
String
&
rErrStr
)
:
aErrStr
(
rErrStr
)
{
...
...
@@ -895,7 +833,7 @@ void BasicManager::ImpMgrNotLoaded( const String& rStorageName )
// pErrInf is only destroyed if the error os processed by an
// ErrorHandler
StringErrorInfo
*
pErrInf
=
new
StringErrorInfo
(
ERRCODE_BASMGR_MGROPEN
,
rStorageName
,
ERRCODE_BUTTON_OK
);
pErrorMgr
->
InsertError
(
BasicError
(
*
pErrInf
,
BASERR_REASON_OPENMGRSTREAM
,
rStorageName
)
);
aErrors
.
push_back
(
BasicError
(
*
pErrInf
,
BASERR_REASON_OPENMGRSTREAM
,
rStorageName
)
);
// Create a stdlib otherwise we crash!
BasicLibInfo
*
pStdLibInfo
=
CreateLibInfo
();
...
...
@@ -918,7 +856,6 @@ void BasicManager::ImpCreateStdLib( StarBASIC* pParentFromStdLib )
pStdLib
->
SetFlag
(
SBX_DONTSTORE
|
SBX_EXTSEARCH
);
}
void
BasicManager
::
LoadBasicManager
(
SotStorage
&
rStorage
,
const
String
&
rBaseURL
,
sal_Bool
bLoadLibs
)
{
DBG_CHKTHIS
(
BasicManager
,
0
);
...
...
@@ -1034,7 +971,7 @@ void BasicManager::LoadOldBasicManager( SotStorage& rStorage )
if
(
!
ImplLoadBasic
(
*
xManagerStream
,
pLibs
->
GetObject
(
0
)
->
GetLibRef
()
)
)
{
StringErrorInfo
*
pErrInf
=
new
StringErrorInfo
(
ERRCODE_BASMGR_MGROPEN
,
aStorName
,
ERRCODE_BUTTON_OK
);
pErrorMgr
->
InsertError
(
BasicError
(
*
pErrInf
,
BASERR_REASON_OPENMGRSTREAM
,
aStorName
)
);
aErrors
.
push_back
(
BasicError
(
*
pErrInf
,
BASERR_REASON_OPENMGRSTREAM
,
aStorName
)
);
// and it proceeds ...
}
xManagerStream
->
Seek
(
nBasicEndOff
+
1
);
// +1: 0x00 as separator
...
...
@@ -1079,7 +1016,7 @@ void BasicManager::LoadOldBasicManager( SotStorage& rStorage )
else
{
StringErrorInfo
*
pErrInf
=
new
StringErrorInfo
(
ERRCODE_BASMGR_LIBLOAD
,
aStorName
,
ERRCODE_BUTTON_OK
);
pErrorMgr
->
InsertError
(
BasicError
(
*
pErrInf
,
BASERR_REASON_STORAGENOTFOUND
,
aStorName
)
);
aErrors
.
push_back
(
BasicError
(
*
pErrInf
,
BASERR_REASON_STORAGENOTFOUND
,
aStorName
)
);
}
}
}
...
...
@@ -1095,7 +1032,6 @@ BasicManager::~BasicManager()
// Destroy Basic-Infos...
// In reverse order
delete
pLibs
;
delete
pErrorMgr
;
delete
mpImpl
;
}
...
...
@@ -1129,7 +1065,6 @@ void BasicManager::Init()
DBG_CHKTHIS
(
BasicManager
,
0
);
bBasMgrModified
=
sal_False
;
pErrorMgr
=
new
BasicErrorManager
;
pLibs
=
new
BasicLibs
;
mpImpl
=
new
BasicManagerImpl
();
}
...
...
@@ -1143,7 +1078,7 @@ BasicLibInfo* BasicManager::CreateLibInfo()
return
pInf
;
}
sal_Bool
BasicManager
::
ImpLoadLibary
(
BasicLibInfo
*
pLibInfo
,
SotStorage
*
pCurStorage
,
sal_Bool
bInfosOnly
)
const
sal_Bool
BasicManager
::
ImpLoadLibary
(
BasicLibInfo
*
pLibInfo
,
SotStorage
*
pCurStorage
,
sal_Bool
bInfosOnly
)
{
DBG_CHKTHIS
(
BasicManager
,
0
);
...
...
@@ -1179,7 +1114,7 @@ sal_Bool BasicManager::ImpLoadLibary( BasicLibInfo* pLibInfo, SotStorage* pCurSt
if
(
!
xBasicStorage
.
Is
()
||
xBasicStorage
->
GetError
()
)
{
StringErrorInfo
*
pErrInf
=
new
StringErrorInfo
(
ERRCODE_BASMGR_MGROPEN
,
xStorage
->
GetName
(),
ERRCODE_BUTTON_OK
);
pErrorMgr
->
InsertError
(
BasicError
(
*
pErrInf
,
BASERR_REASON_OPENLIBSTORAGE
,
pLibInfo
->
GetLibName
()
)
);
aErrors
.
push_back
(
BasicError
(
*
pErrInf
,
BASERR_REASON_OPENLIBSTORAGE
,
pLibInfo
->
GetLibName
())
);
}
else
{
...
...
@@ -1188,7 +1123,7 @@ sal_Bool BasicManager::ImpLoadLibary( BasicLibInfo* pLibInfo, SotStorage* pCurSt
if
(
!
xBasicStream
.
Is
()
||
xBasicStream
->
GetError
()
)
{
StringErrorInfo
*
pErrInf
=
new
StringErrorInfo
(
ERRCODE_BASMGR_LIBLOAD
,
pLibInfo
->
GetLibName
(),
ERRCODE_BUTTON_OK
);
pErrorMgr
->
InsertError
(
BasicError
(
*
pErrInf
,
BASERR_REASON_OPENLIBSTREAM
,
pLibInfo
->
GetLibName
()
)
);
aErrors
.
push_back
(
BasicError
(
*
pErrInf
,
BASERR_REASON_OPENLIBSTREAM
,
pLibInfo
->
GetLibName
())
);
}
else
{
...
...
@@ -1220,7 +1155,7 @@ sal_Bool BasicManager::ImpLoadLibary( BasicLibInfo* pLibInfo, SotStorage* pCurSt
if
(
!
bLoaded
)
{
StringErrorInfo
*
pErrInf
=
new
StringErrorInfo
(
ERRCODE_BASMGR_LIBLOAD
,
pLibInfo
->
GetLibName
(),
ERRCODE_BUTTON_OK
);
pErrorMgr
->
InsertError
(
BasicError
(
*
pErrInf
,
BASERR_REASON_BASICLOADERROR
,
pLibInfo
->
GetLibName
()
)
);
aErrors
.
push_back
(
BasicError
(
*
pErrInf
,
BASERR_REASON_BASICLOADERROR
,
pLibInfo
->
GetLibName
())
);
}
else
{
...
...
@@ -1402,7 +1337,7 @@ sal_Bool BasicManager::RemoveLib( sal_uInt16 nLib, sal_Bool bDelBasicFromStorage
if
(
!
pLibInfo
||
!
nLib
)
{
StringErrorInfo
*
pErrInf
=
new
StringErrorInfo
(
ERRCODE_BASMGR_REMOVELIB
,
String
(),
ERRCODE_BUTTON_OK
);
pErrorMgr
->
InsertError
(
BasicError
(
*
pErrInf
,
BASERR_REASON_STDLIB
,
pLibInfo
->
GetLibName
()
)
);
aErrors
.
push_back
(
BasicError
(
*
pErrInf
,
BASERR_REASON_STDLIB
,
pLibInfo
->
GetLibName
())
);
return
sal_False
;
}
...
...
@@ -1425,7 +1360,7 @@ sal_Bool BasicManager::RemoveLib( sal_uInt16 nLib, sal_Bool bDelBasicFromStorage
if
(
!
xBasicStorage
.
Is
()
||
xBasicStorage
->
GetError
()
)
{
StringErrorInfo
*
pErrInf
=
new
StringErrorInfo
(
ERRCODE_BASMGR_REMOVELIB
,
String
(),
ERRCODE_BUTTON_OK
);
pErrorMgr
->
InsertError
(
BasicError
(
*
pErrInf
,
BASERR_REASON_OPENLIBSTORAGE
,
pLibInfo
->
GetLibName
()
)
);
aErrors
.
push_back
(
BasicError
(
*
pErrInf
,
BASERR_REASON_OPENLIBSTORAGE
,
pLibInfo
->
GetLibName
())
);
}
else
if
(
xBasicStorage
->
IsStream
(
pLibInfo
->
GetLibName
()
)
)
{
...
...
@@ -1594,7 +1529,7 @@ sal_Bool BasicManager::LoadLib( sal_uInt16 nLib )
else
{
StringErrorInfo
*
pErrInf
=
new
StringErrorInfo
(
ERRCODE_BASMGR_LIBLOAD
,
String
(),
ERRCODE_BUTTON_OK
);
pErrorMgr
->
InsertError
(
BasicError
(
*
pErrInf
,
BASERR_REASON_LIBNOTFOUND
,
String
::
CreateFromInt32
(
nLib
)
)
);
aErrors
.
push_back
(
BasicError
(
*
pErrInf
,
BASERR_REASON_LIBNOTFOUND
,
String
::
CreateFromInt32
(
nLib
))
);
}
return
bDone
;
}
...
...
@@ -1706,23 +1641,11 @@ sal_Bool BasicManager::IsBasicModified() const
return
sal_False
;
}
sal_Bool
BasicManager
::
HasErrors
()
{
DBG_CHKTHIS
(
BasicManager
,
0
);
return
pErrorMgr
->
HasErrors
();
}
BasicError
*
BasicManager
::
GetFirstError
()
std
::
vector
<
BasicError
>&
BasicManager
::
GetErrors
()
{
DBG_CHKTHIS
(
BasicManager
,
0
);
return
pErrorMgr
->
GetFirstError
();
return
aErrors
;
}
BasicError
*
BasicManager
::
GetNextError
()
{
DBG_CHKTHIS
(
BasicManager
,
0
);
return
pErrorMgr
->
GetNextError
();
}
bool
BasicManager
::
GetGlobalUNOConstant
(
const
sal_Char
*
_pAsciiName
,
::
com
::
sun
::
star
::
uno
::
Any
&
aOut
)
{
bool
bRes
=
false
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment