Additional error checking by Jim Park.
Also some cleaning. git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6058 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
e438c2092b
commit
cefeec3676
6 changed files with 11 additions and 18 deletions
|
@ -123,7 +123,7 @@ makensis_env.Append(CCFLAGS = ['/Fa${TARGET}.lst']) # listing file name
|
||||||
makensis_env.Append(LINKFLAGS = ['/opt:nowin98']) # 512 bytes align
|
makensis_env.Append(LINKFLAGS = ['/opt:nowin98']) # 512 bytes align
|
||||||
makensis_env.Append(LINKFLAGS = ['$MAP_FLAG']) # generate map file
|
makensis_env.Append(LINKFLAGS = ['$MAP_FLAG']) # generate map file
|
||||||
if defenv['UNICODE']:
|
if defenv['UNICODE']:
|
||||||
makensis_env.Append(LINKFLAGS = ['/stack:2097152']) # need 2 MB of stack in Unicode (default is 1 MB)
|
makensis_env.Append(LINKFLAGS = ['/STACK:2097152']) # need 2 MB of stack in Unicode (default is 1 MB)
|
||||||
|
|
||||||
### plugin environment
|
### plugin environment
|
||||||
|
|
||||||
|
|
|
@ -114,11 +114,6 @@ CResourceVersionInfo::~CResourceVersionInfo()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CResourceVersionInfo::SetFileFlags(int Value)
|
|
||||||
{
|
|
||||||
m_FixedInfo.dwFileFlags = (m_FixedInfo.dwFileFlags & ~(m_FixedInfo.dwFileFlagsMask)) || Value;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CResourceVersionInfo::SetFileVersion(int HighPart, int LowPart)
|
void CResourceVersionInfo::SetFileVersion(int HighPart, int LowPart)
|
||||||
{
|
{
|
||||||
m_FixedInfo.dwFileVersionLS = LowPart;
|
m_FixedInfo.dwFileVersionLS = LowPart;
|
||||||
|
|
|
@ -84,14 +84,6 @@ public:
|
||||||
virtual ~CResourceVersionInfo();
|
virtual ~CResourceVersionInfo();
|
||||||
int SetKeyValue(LANGID lang_id, int codepage, TCHAR* AKeyName, TCHAR* AValue);
|
int SetKeyValue(LANGID lang_id, int codepage, TCHAR* AKeyName, TCHAR* AValue);
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the file flags into the VS_FIXEDFILEINFO structure for this object.
|
|
||||||
* Only what's set as valid in the dwFileFlagsMask is allowed to be set.
|
|
||||||
* Currently, this API is never used and unless dwFileFlagsMask is set,
|
|
||||||
* should never be used.
|
|
||||||
*/
|
|
||||||
void SetFileFlags(int Value);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the file version.
|
* Set the file version.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -194,14 +194,14 @@ void LangStringList::set(int pos, int index/*=-1*/, int uindex/*=-1*/, int proce
|
||||||
|
|
||||||
void LangStringList::set(const TCHAR *name, int index, int uindex/*=-1*/, int process/*=-1*/)
|
void LangStringList::set(const TCHAR *name, int index, int uindex/*=-1*/, int process/*=-1*/)
|
||||||
{
|
{
|
||||||
set(get(name), index, uindex, process);
|
set(find(name), index, uindex, process);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TCHAR* LangStringList::pos2name(int pos)
|
const TCHAR* LangStringList::pos2name(int pos)
|
||||||
{
|
{
|
||||||
struct langstring *data=(struct langstring *) m_gr.get();
|
struct langstring *data=(struct langstring *) m_gr.get();
|
||||||
|
|
||||||
if ((unsigned int)pos > (m_gr.getlen() / sizeof(struct langstring)))
|
if (pos < 0 || (unsigned int)pos > (m_gr.getlen() / sizeof(struct langstring)))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return ((const TCHAR*) m_strings.get() + data[pos].name);
|
return ((const TCHAR*) m_strings.get() + data[pos].name);
|
||||||
|
@ -209,7 +209,7 @@ const TCHAR* LangStringList::pos2name(int pos)
|
||||||
|
|
||||||
const TCHAR* LangStringList::offset2name(int name)
|
const TCHAR* LangStringList::offset2name(int name)
|
||||||
{
|
{
|
||||||
if ((unsigned int)name > m_strings.getlen()/sizeof(TCHAR))
|
if (name < 0 || (unsigned int)name > m_strings.getlen()/sizeof(TCHAR))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return (const TCHAR*) m_strings.get() + name;
|
return (const TCHAR*) m_strings.get() + name;
|
||||||
|
@ -291,7 +291,7 @@ int StringsArray::set(int idx, const TCHAR *str)
|
||||||
|
|
||||||
const TCHAR* StringsArray::get(int idx)
|
const TCHAR* StringsArray::get(int idx)
|
||||||
{
|
{
|
||||||
if ((unsigned int)idx >= (m_offsets.getlen() / sizeof(int)))
|
if (idx < 0 || (unsigned int)idx >= (m_offsets.getlen() / sizeof(int)))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return (const TCHAR *) m_strings.get() + ((int*) m_offsets.get())[idx];
|
return (const TCHAR *) m_strings.get() + ((int*) m_offsets.get())[idx];
|
||||||
|
|
|
@ -5892,6 +5892,11 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
|
||||||
build_overwrite=1; // off
|
build_overwrite=1; // off
|
||||||
int old_build_datesave=build_datesave;
|
int old_build_datesave=build_datesave;
|
||||||
build_datesave=0; // off
|
build_datesave=0; // off
|
||||||
|
|
||||||
|
// Jim Park: While the code looks as if the same DLL is added multiple
|
||||||
|
// times for each command in the DLL, this is actually not the case
|
||||||
|
// because of CEXEBuild::datablock_optimize() that tries to discover
|
||||||
|
// duplicates and reuse them.
|
||||||
ret=do_add_file(dllPath.c_str(),0,0,&files_added,tempDLL,2,&data_handle); // 2 means no size add
|
ret=do_add_file(dllPath.c_str(),0,0,&files_added,tempDLL,2,&data_handle); // 2 means no size add
|
||||||
if (ret != PS_OK) {
|
if (ret != PS_OK) {
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -109,6 +109,7 @@ class UserVarsStringList : public SortedStringListND<struct uservarstring>
|
||||||
int inc_reference(int idx)
|
int inc_reference(int idx)
|
||||||
{
|
{
|
||||||
int pos=get_internal_idx(idx);
|
int pos=get_internal_idx(idx);
|
||||||
|
if (pos==-1) return -1;
|
||||||
return ((struct uservarstring*) m_gr.get())[pos].reference++;
|
return ((struct uservarstring*) m_gr.get())[pos].reference++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue