Skip to content

Commit 118e35b

Browse files
committed
tornado updated to version 0.6a
1 parent 48c55a4 commit 118e35b

7 files changed

+244
-170
lines changed

tornado/Common.cpp

+56-37
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#include "Common.h"
44
#include "Compression.h"
55

6-
// Äëÿ îáðàáîòêè îøèáîê âî âëîæåííûõ ïðîöåäóðàõ - longjmp ñèãíàëèçèðóåò ïðîöåäóðå âåðõíåãî óðîâíÿ î ïðîèçîøåäøåé îøèáêå
6+
// Äëÿ îáðàáîòêè îøèáîê âî âëîæåííûõ ïðîöåäóðàõ - longjmp ñèãíàëèçèðóåò ïðîöåäóðå âåðõíåãî óðîâíÿ î ïðîèçîøåäøåé îøèáêå
77
int jmpready = FALSE;
88
jmp_buf jumper;
99

@@ -117,19 +117,19 @@ void BigFree(void *address) throw()
117117

118118

119119
// ****************************************************************************
120-
// Ôóíêöèè ïàðñèíãà è àðèôìåòèêè **********************************************
120+
// Ôóíêöèè ïàðñèíãà è àðèôìåòèêè **********************************************
121121
// ****************************************************************************
122122

123-
// Êîïèðóåò ñòðî÷êó from â to, íî íå áîëåå len ñèìâîëîâ
123+
// Êîïèðóåò ñòðî÷êó from â to, íî íå áîëåå len ñèìâîëîâ
124124
void strncopy( char *to, char *from, int len ) {
125125
for (int i = len; --i && *from; ) *to++ = *from++;
126126
*to = '\0';
127127
}
128128

129-
// Ðàçáèòü ñòðîêó str íà ïîäñòðîêè, ðàçäåë¸ííûå ñèìâîëîì splitter.
130-
// Ðåçóëüòàò - â ñòðîêå str splitter çàìåíÿåòñÿ íà '\0'
131-
// è ìàññèâ result çàïîëíÿåòñÿ ññûëêàìè íà âûäåëåííûå â str ïîäñòðîêè + NULL (àíàëîãè÷íî argv)
132-
// Âîçâðàùàåò ÷èñëî íàéäåííûõ ïîäñòðîê
129+
// Ðàçáèòü ñòðîêó str íà ïîäñòðîêè, ðàçäåë¸ííûå ñèìâîëîì splitter.
130+
// Ðåçóëüòàò - â ñòðîêå str splitter çàìåíÿåòñÿ íà '\0'
131+
// è ìàññèâ result çàïîëíÿåòñÿ ññûëêàìè íà âûäåëåííûå â str ïîäñòðîêè + NULL (àíàëîãè÷íî argv)
132+
// Âîçâðàùàåò ÷èñëî íàéäåííûõ ïîäñòðîê
133133
int split (char *str, char splitter, char **result_base, int result_size)
134134
{
135135
char **result = result_base;
@@ -147,7 +147,7 @@ int split (char *str, char splitter, char **result_base, int result_size)
147147
return result-result_base;
148148
}
149149

150-
// Îáúåäèíèòü NULL-terminated ìàññèâ ñòðîê src â ñòðîêó result, ñòàâÿ ìåæäó ñòðîêàìè ðàçäåëèòåëü splitter
150+
// Îáúåäèíèòü NULL-terminated ìàññèâ ñòðîê src â ñòðîêó result, ñòàâÿ ìåæäó ñòðîêàìè ðàçäåëèòåëü splitter
151151
void join (char **src, char splitter, char *result, int result_size)
152152
{
153153
char *dst = result; *dst = '\0';
@@ -159,7 +159,7 @@ void join (char **src, char splitter, char *result, int result_size)
159159
}
160160
}
161161

162-
// Íàéòè ïàðàìåòð ñ çàäàííûì èìåíåì â ìàññèâå ïàðàìåòðîâ àëãîðèòìà
162+
// Íàéòè ïàðàìåòð ñ çàäàííûì èìåíåì â ìàññèâå ïàðàìåòðîâ àëãîðèòìà
163163
char *search_param(char **param, char *prefix)
164164
{
165165
for ( ; *param; param++)
@@ -168,8 +168,8 @@ char *search_param(char **param, char *prefix)
168168
return NULL;
169169
}
170170

171-
// Çàìåíÿåò â ñòðîêå original âñå âõîæäåíèÿ from íà to,
172-
// âîçâðàùàÿ âíîâü âûäåëåííóþ new ñòðîêó è îñâîáîæäàÿ îðèãèíàë, åñëè áûëà õîòü îäíà çàìåíà
171+
// Çàìåíÿåò â ñòðîêå original âñå âõîæäåíèÿ from íà to,
172+
// âîçâðàùàÿ âíîâü âûäåëåííóþ new ñòðîêó è îñâîáîæäàÿ îðèãèíàë, åñëè áûëà õîòü îäíà çàìåíà
173173
char *subst (char *original, char *from, char *to)
174174
{
175175
while(1) {
@@ -184,7 +184,7 @@ char *subst (char *original, char *from, char *to)
184184
}
185185
}
186186

187-
// Ïðîïóñêàåò ïðîáåëû â íà÷àëå ñòðîêè è óáèðàåò èõ â êîíöå, ìîäèôèöèðóÿ ñòðîêó
187+
// Ïðîïóñêàåò ïðîáåëû â íà÷àëå ñòðîêè è óáèðàåò èõ â êîíöå, ìîäèôèöèðóÿ ñòðîêó
188188
char *trim_spaces(char *s)
189189
{
190190
while(isspace(*s)) s++;
@@ -211,6 +211,12 @@ char *str_replace (char *orig, char *from, char *to)
211211
else return strdup_msg (orig);
212212
}
213213

214+
// If the string param contains a double, return it - otherwise set error=1
215+
double parseDouble(char *param, int *error)
216+
{
217+
return atof(param) ;
218+
}
219+
214220
// If the string param contains an integer, return it - otherwise set error=1
215221
MemSize parseInt (char *param, int *error)
216222
{
@@ -248,7 +254,8 @@ MemSize parseMem (char *param, int *error, char spec)
248254
// Returns a string with the amount of memory
249255
void showMem (MemSize mem, char *result)
250256
{
251-
if (mem%gb==0) sprintf (result, "%.0lfgb", double(mem/gb));
257+
if (mem ==0) sprintf (result, "0b");
258+
else if (mem%gb==0) sprintf (result, "%.0lfgb", double(mem/gb));
252259
else if (mem%mb==0) sprintf (result, "%.0lfmb", double(mem/mb));
253260
else if (mem%kb==0) sprintf (result, "%.0lfkb", double(mem/kb));
254261
else sprintf (result, "%.0lfb", double(mem));
@@ -257,6 +264,8 @@ void showMem (MemSize mem, char *result)
257264
// Returns a string with the amount of memory
258265
void showMem64 (uint64 mem, char *result)
259266
{
267+
if (mem ==0) sprintf (result, "0b");
268+
else
260269
if(mem%terabyte==0) sprintf (result, "%.0lftb", double(mem/terabyte));
261270
else if (mem%gb==0) sprintf (result, "%.0lfgb", double(mem/gb));
262271
else if (mem%mb==0) sprintf (result, "%.0lfmb", double(mem/mb));
@@ -265,7 +274,7 @@ void showMem64 (uint64 mem, char *result)
265274
}
266275

267276

268-
// Êîäèðîâàíèå ñòðîêè â øåñòíàäöàòåðè÷íûé âèä ïëþñ \0
277+
// Êîäèðîâàíèå ñòðîêè â øåñòíàäöàòåðè÷íûé âèä ïëþñ \0
269278
void encode16 (const BYTE *src, int srcSize, char *dst)
270279
{
271280
for( ; srcSize--; src++)
@@ -274,21 +283,21 @@ void encode16 (const BYTE *src, int srcSize, char *dst)
274283
*dst++ = '\0';
275284
}
276285

277-
// Äåêîäèðîâàíèå ñòðîêè, çàïèñàííîé â øåñòíàäöàòåðè÷íîì âèäå, â ïîñëåäîâàòåëüíîñòü áàéò
286+
// Äåêîäèðîâàíèå ñòðîêè, çàïèñàííîé â øåñòíàäöàòåðè÷íîì âèäå, â ïîñëåäîâàòåëüíîñòü áàéò
278287
void decode16 (const char *src, BYTE *dst)
279288
{
280289
for( ; src[0] && src[1]; src+=2)
281290
*dst++ = char2int(src[0]) * 16 + char2int(src[1]);
282291
}
283292

284-
// ÎØÈÁÎ×ÍÎÅ äåêîäèðîâàíèå ñòðîêè, çàïèñàííîé â øåñòíàäöàòåðè÷íîì âèäå, â ïîñëåäîâàòåëüíîñòü áàéò
293+
// ÎØÈÁÎ×ÍÎÅ äåêîäèðîâàíèå ñòðîêè, çàïèñàííîé â øåñòíàäöàòåðè÷íîì âèäå, â ïîñëåäîâàòåëüíîñòü áàéò
285294
void buggy_decode16 (const char *src, BYTE *dst)
286295
{
287296
for( ; src[0] && src[1]; src+=2)
288297
*dst++ = buggy_char2int(src[0]) * 16 + buggy_char2int(src[1]);
289298
}
290299

291-
// Îêðóãëÿåò ðàçìåð ïàìÿòè âíèç äî óäîáíîé âåëè÷èíû
300+
// Îêðóãëÿåò ðàçìåð ïàìÿòè âíèç äî óäîáíîé âåëè÷èíû
292301
MemSize rounddown_mem (MemSize n)
293302
{
294303
if (n < 32*kb) return n;
@@ -516,7 +525,7 @@ int GetProcessorsCount (void)
516525

517526
void SetFileDateTime (CFILENAME Filename, time_t t)
518527
{
519-
if (t<0) t=INT_MAX; // Èíà÷å ïîëó÷àåì âûëåò :(
528+
if (t<0) t=INT_MAX; // Èíà÷å ïîëó÷àåì âûëåò :(
520529
struct tm* t2 = gmtime(&t);
521530

522531
SYSTEMTIME t3;
@@ -571,7 +580,7 @@ int RunCommand (CFILENAME command, CFILENAME curdir, int wait_finish, SIMPLE_CAL
571580
si.hStdError = (HANDLE) _get_osfhandle(2);
572581
PROCESS_INFORMATION pi;
573582
ZeroMemory (&pi, sizeof(pi));
574-
DWORD ExitCode = 0; // êîä âîçâðàòà âûçûâàåìîé ïðîãðàììû
583+
DWORD ExitCode = 0; // êîä âîçâðàòà âûçûâàåìîé ïðîãðàììû
575584

576585
BOOL process_created = CreateProcessW (NULL, command, NULL, NULL, TRUE, 0, NULL, curdir, &si, &pi);
577586
if (callback)
@@ -606,7 +615,7 @@ void RunFile (CFILENAME filename, CFILENAME curdir, int wait_finish)
606615
CloseHandle (sei.hProcess);
607616
}
608617

609-
// Âåðñèÿ Windows
618+
// Âåðñèÿ Windows
610619
#define CheckWinVersion(ver) (GetWinVersion() >= ver)
611620

612621
#define WIN_VERSION_VISTA 0x600
@@ -631,23 +640,23 @@ int GetWinVersion()
631640
#define THREAD_MODE_BACKGROUND_END 0x00020000
632641
#endif
633642

634-
// Óñòàíîâèòü ïðèîðèòåò òðåäà êàêîé ïîëàãàåòñÿ äëÿ òðåäîâ ñæàòèÿ (ðàñïàêîâêè, øèôðîâàíèÿ...).
635-
// Èñïîëüçóåòñÿ äëÿ òðåäîâ, êîòîðûå âûïîëíÿþò òîëüêî ñæàòèå
643+
// Óñòàíîâèòü ïðèîðèòåò òðåäà êàêîé ïîëàãàåòñÿ äëÿ òðåäîâ ñæàòèÿ (ðàñïàêîâêè, øèôðîâàíèÿ...).
644+
// Èñïîëüçóåòñÿ äëÿ òðåäîâ, êîòîðûå âûïîëíÿþò òîëüêî ñæàòèå
636645
void SetCompressionThreadPriority (void)
637646
{
638647
SetThreadPriority (GetCurrentThread(), THREAD_PRIORITY_BELOW_NORMAL);
639648
}
640649

641-
// Âðåìåííî óñòàíîâèòü ïðèîðèòåò òðåäà êàêîé ïîëàãàåòñÿ äëÿ òðåäîâ ñæàòèÿ (ðàñïàêîâêè, øèôðîâàíèÿ...)
642-
// è âîçâðàòèòü ñòàðîå çíà÷åíèå óðîâíÿ ïðèîðèòåòà. Èñïîëüçóåòñÿ äëÿ òðåäîâ, âðåìåííî âûïîëíÿþùèõ çàäà÷è ñæàòèÿ
650+
// Âðåìåííî óñòàíîâèòü ïðèîðèòåò òðåäà êàêîé ïîëàãàåòñÿ äëÿ òðåäîâ ñæàòèÿ (ðàñïàêîâêè, øèôðîâàíèÿ...)
651+
// è âîçâðàòèòü ñòàðîå çíà÷åíèå óðîâíÿ ïðèîðèòåòà. Èñïîëüçóåòñÿ äëÿ òðåäîâ, âðåìåííî âûïîëíÿþùèõ çàäà÷è ñæàòèÿ
643652
int BeginCompressionThreadPriority (void)
644653
{
645654
DWORD dwThreadPriority = GetThreadPriority(GetCurrentThread());
646655
SetCompressionThreadPriority();
647656
return dwThreadPriority;
648657
}
649658

650-
// Âîññòàíîâèòü ïðèîðèòåò òðåäà òàêèì, êàê ìû åãî çàïîìíèëè
659+
// Âîññòàíîâèòü ïðèîðèòåò òðåäà òàêèì, êàê ìû åãî çàïîìíèëè
651660
void EndCompressionThreadPriority (int old_priority)
652661
{
653662
SetThreadPriority (GetCurrentThread(), old_priority);
@@ -658,6 +667,7 @@ void EndCompressionThreadPriority (int old_priority)
658667

659668
#include <unistd.h>
660669
#include <sys/resource.h>
670+
#include <sys/sysctl.h>
661671

662672
uint64 GetPhysicalMemory (void)
663673
{
@@ -666,7 +676,16 @@ uint64 GetPhysicalMemory (void)
666676

667677
uint64 GetAvailablePhysicalMemory (void)
668678
{
679+
#if defined(_SC_AVPHYS_PAGES)
669680
return uint64(sysconf(_SC_AVPHYS_PAGES)) * sysconf(_SC_PAGE_SIZE);
681+
#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__minix)
682+
unsigned long page_count = 0;
683+
size_t page_count_size = sizeof(page_count);
684+
sysctlbyname("hw.availpages", &page_count, &page_count, NULL, 0);
685+
return page_count * sysconf(_SC_PAGE_SIZE);
686+
#else
687+
# error "There's no support for memory stats on your system."
688+
#endif
670689
}
671690

672691
int GetProcessorsCount (void)
@@ -676,7 +695,7 @@ int GetProcessorsCount (void)
676695

677696
void SetFileDateTime(CFILENAME Filename, time_t t)
678697
{
679-
if (t<0) t=INT_MAX; // Èíà÷å ïîëó÷àåì âûëåò :(
698+
if (t<0) t=INT_MAX; // Èíà÷å ïîëó÷àåì âûëåò :(
680699
struct stat st;
681700
stat (Filename, &st);
682701
struct utimbuf times;
@@ -715,23 +734,23 @@ void RunFile (CFILENAME filename, CFILENAME curdir, int wait_finish)
715734
RunCommand (filename, curdir, wait_finish, NULL, NULL);
716735
}
717736

718-
// Óñòàíîâèòü ïðèîðèòåò òðåäà êàêîé ïîëàãàåòñÿ äëÿ òðåäîâ ñæàòèÿ (ðàñïàêîâêè, øèôðîâàíèÿ...).
719-
// Èñïîëüçóåòñÿ äëÿ òðåäîâ, êîòîðûå âûïîëíÿþò òîëüêî ñæàòèå
737+
// Óñòàíîâèòü ïðèîðèòåò òðåäà êàêîé ïîëàãàåòñÿ äëÿ òðåäîâ ñæàòèÿ (ðàñïàêîâêè, øèôðîâàíèÿ...).
738+
// Èñïîëüçóåòñÿ äëÿ òðåäîâ, êîòîðûå âûïîëíÿþò òîëüêî ñæàòèå
720739
void SetCompressionThreadPriority (void)
721740
{
722741
int old = getpriority(PRIO_PROCESS, 0);
723742
setpriority(PRIO_PROCESS, 0, old+1);
724743
}
725744

726-
// Âðåìåííî óñòàíîâèòü ïðèîðèòåò òðåäà êàêîé ïîëàãàåòñÿ äëÿ òðåäîâ ñæàòèÿ (ðàñïàêîâêè, øèôðîâàíèÿ...)
745+
// Âðåìåííî óñòàíîâèòü ïðèîðèòåò òðåäà êàêîé ïîëàãàåòñÿ äëÿ òðåäîâ ñæàòèÿ (ðàñïàêîâêè, øèôðîâàíèÿ...)
727746
int BeginCompressionThreadPriority (void)
728747
{
729748
int old = getpriority(PRIO_PROCESS, 0);
730-
//setpriority(PRIO_PROCESS, 0, old+1); çàêîììåíòèðîâàíî èç-çà ïðîáëåì ñ âîññòàíîâëåíèåì ñòàðîãî ïðèîðèòåòà :(
749+
//setpriority(PRIO_PROCESS, 0, old+1); çàêîììåíòèðîâàíî èç-çà ïðîáëåì ñ âîññòàíîâëåíèåì ñòàðîãî ïðèîðèòåòà :(
731750
return old;
732751
}
733752

734-
// Âîññòàíîâèòü ïðèîðèòåò òðåäà òàêèì, êàê ìû åãî çàïîìíèëè
753+
// Âîññòàíîâèòü ïðèîðèòåò òðåäà òàêèì, êàê ìû åãî çàïîìíèëè
735754
void EndCompressionThreadPriority (int old_priority)
736755
{
737756
//setpriority(PRIO_PROCESS, 0, old_priority);
@@ -740,7 +759,7 @@ void EndCompressionThreadPriority (int old_priority)
740759
#endif // Windows/Unix
741760

742761

743-
// Ñîçäàòü êàòàëîãè íà ïóòè ê name
762+
// Ñîçäàòü êàòàëîãè íà ïóòè ê name
744763
void BuildPathTo (CFILENAME name)
745764
{
746765
CFILENAME path_ptr = NULL;
@@ -762,7 +781,7 @@ void BuildPathTo (CFILENAME name)
762781

763782

764783
// ****************************************************************************************************************************
765-
// ÏÎÄÄÅÐÆÊÀ ÑÏÈÑÊÀ ÂÐÅÌÅÍÍÛÕ ÔÀÉËÎÂ È ÓÄÀËÅÍÈÅ ÈÕ ÏÐÈ ÀÂÀÐÈÉÍÎÌ ÂÛÕÎÄÅ ÈÇ ÏÐÎÃÐÀÌÌÛ ******************************************
784+
// ÏÎÄÄÅÐÆÊÀ ÑÏÈÑÊÀ ÂÐÅÌÅÍÍÛÕ ÔÀÉËÎÂ È ÓÄÀËÅÍÈÅ ÈÕ ÏÐÈ ÀÂÀÐÈÉÍÎÌ ÂÛÕÎÄÅ ÈÇ ÏÐÎÃÐÀÌÌÛ ******************************************
766785
// ****************************************************************************************************************************
767786

768787
// Table of temporary files that should be deleted on ^Break
@@ -801,7 +820,7 @@ void removeTemporaryFiles (void)
801820
#ifndef FREEARC_NO_TIMING
802821

803822
//*****************************************************************************
804-
// Âûâîä çàãîëîâêà îêíà *******************************************************
823+
// Âûâîä çàãîëîâêà îêíà *******************************************************
805824
//*****************************************************************************
806825

807826
#ifdef FREEARC_WIN
@@ -810,7 +829,7 @@ void removeTemporaryFiles (void)
810829
TCHAR Saved_Title[MY_FILENAME_MAX+1000];
811830
bool Saved = FALSE, SavedA = FALSE;
812831

813-
// Óñòàíîâèòü çàãîëîâîê êîíñîëüíîãî îêíà
832+
// Óñòàíîâèòü çàãîëîâîê êîíñîëüíîãî îêíà
814833
void EnvSetConsoleTitle (TCHAR *title)
815834
{
816835
if (!Saved && !SavedA) {
@@ -828,7 +847,7 @@ void EnvSetConsoleTitleA (char *title)
828847
SetConsoleTitleA (title);
829848
}
830849

831-
// Âîññòàíîâèòü çàãîëîâîê, êîòîðûé áûë â íà÷àëå ðàáîòû ïðîãðàììû
850+
// Âîññòàíîâèòü çàãîëîâîê, êîòîðûé áûë â íà÷àëå ðàáîòû ïðîãðàììû
832851
void EnvResetConsoleTitle (void)
833852
{
834853
if (Saved) {
@@ -950,7 +969,7 @@ void Install_signal_handler (void (__cdecl *signal_handler)(int))
950969
// Windows 7 taskbar progress indicator ***************************************
951970
//*****************************************************************************
952971

953-
#ifdef FREEARC_WIN2
972+
#ifdef FREEARC_WIN_VSTUDIO
954973

955974
// Include Win7-specific defines unless on GCC3
956975
#if !defined(__GNUC__) || __GNUC__>=4

tornado/Common.h

+6-4
Original file line numberDiff line numberDiff line change
@@ -211,8 +211,9 @@ static inline int is_subdir_of (char *subdir, char *dir)
211211
#include <share.h>
212212
typedef TCHAR* CFILENAME;
213213
static inline int create_dir (CFILENAME name) {return _tmkdir(name);}
214-
#define file_open_read_binary(filename) _fsopen ((filename), "rb", _SH_DENYWR)
215-
#define file_open_write_binary(filename) _fsopen ((filename), "wb", _SH_DENYWR)
214+
//The following definitions makes file open operations sometimes failing
215+
//#define file_open_read_binary(filename) _fsopen ((filename), "rb", _SH_DENYWR)
216+
//#define file_open_write_binary(filename) _fsopen ((filename), "wb", _SH_DENYWR)
216217
#ifndef __GNUC__
217218
#define file_seek(stream,pos) (_fseeki64(stream, (pos), SEEK_SET))
218219
#define file_seek_cur(stream,pos) (_fseeki64(stream, (pos), SEEK_CUR))
@@ -269,8 +270,6 @@ typedef char TCHAR;
269270
typedef int (*FARPROC) (void);
270271

271272
static inline int create_dir (CFILENAME name) {return mkdir(name,0777);}
272-
#define file_open_read_binary(filename) fopen ((filename), "rb")
273-
#define file_open_write_binary(filename) fopen ((filename), "wb")
274273
#define file_seek(stream,pos) (fseek(stream, (pos), SEEK_SET))
275274
#define get_flen(stream) (myfilelength( fileno (stream)))
276275
#define set_binary_mode(file)
@@ -285,6 +284,8 @@ static inline off_t myfilelength (int h)
285284

286285
#endif // FREEARC_UNIX
287286

287+
#define file_open_read_binary(filename) fopen ((filename), "rb")
288+
#define file_open_write_binary(filename) fopen ((filename), "wb")
288289
#define file_read(file, buf, size) fread (buf, 1, size, file)
289290
#define file_write(file, buf, size) fwrite (buf, 1, size, file)
290291

@@ -653,6 +654,7 @@ void BigFree(void *address) throw();
653654
char*trim_spaces (char *s); // Ïðîïóñêàåò ïðîáåëû â íà÷àëå ñòðîêè è óáèðàåò èõ â êîíöå, ìîäèôèöèðóÿ ñòðîêó
654655
char *str_replace_n (char *orig, char *from, int how_many, char *to); // Replace from:how_many substring and put result in new allocated area
655656
char *str_replace (char *orig, char *from, char *to); // Replace substring and put result in new allocated area
657+
double parseDouble(char *param, int *error); // If the string param contains a double, return it - otherwise set error=1
656658
MemSize parseInt (char *param, int *error); // If the string param contains an integer, return it - otherwise set error=1
657659
MemSize parseMem (char *param, int *error, DEFAULT(char spec,'^')); // Similar, but the string param may have a suffix b/k/m/g/^, representing units of memory, or in the case of '^' (default, overridden by spec parameter), the relevant power of 2
658660
uint64 parseMem64 (char *param, int *error, DEFAULT(char spec,'^')); // Similar, but the string param may have a suffix b/k/m/g/^, representing units of memory, or in the case of '^' (default, overridden by spec parameter), the relevant power of 2

tornado/EntropyCoder.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,10 @@ struct OutputByteStream
4040
// pad - how many bytes may be put to buffer between flush()/putbuf() calls
4141
OutputByteStream (CALLBACK_FUNC *_callback, void *_auxdata, UINT _chunk, UINT pad)
4242
{
43-
callback = _callback; auxdata = _auxdata; chunk = _chunk;
43+
callback = _callback; auxdata = _auxdata; chunk = _chunk; shifted_out = 0;
4444
// Add 512 bytes for LZ77_ByteCoder (its LZSS scheme needs to overwrite old flag words) and 4096 for rounding written chunks
4545
last_qwrite = output = buf = (byte*) BigAlloc (chunk+pad+512+4096);
4646
errcode = buf==NULL? FREEARC_ERRCODE_NOT_ENOUGH_MEMORY : FREEARC_OK;
47-
shifted_out = 0;
4847
}
4948
~OutputByteStream() {BigFree(buf);}
5049
// Returns error code if there was any problems in stream work
@@ -124,7 +123,7 @@ struct InputByteStream
124123
// starting from its MAXELEM position
125124
InputByteStream (CALLBACK_FUNC *_callback, void *_auxdata, UINT _bufsize)
126125
{
127-
callback = _callback; auxdata = _auxdata;
126+
callback = _callback; auxdata = _auxdata; shifted_out = 0;
128127
bufsize = compress_all_at_once? _bufsize+(_bufsize/4) : LARGE_BUFFER_SIZE; // For all-at-once compression input buffer should be large enough to hold all compressed data
129128
buf = (byte*) BigAlloc (MAXELEM+bufsize);
130129
errcode = buf==NULL? FREEARC_ERRCODE_NOT_ENOUGH_MEMORY : FREEARC_OK;

0 commit comments

Comments
 (0)