@@ -108,40 +108,41 @@ unsigned char* layla_decomp(unsigned char* data, crilayla_header header){
108108 return dst;
109109}
110110
111- unsigned int layla_comp (unsigned char * dest, unsigned int * destLen, unsigned char * src, unsigned int srcLen){
112- unsigned int n = srcLen - 1 , m = *destLen - 0x1 , T = 0 , d = 0 , p, q, i, j, k;
113- unsigned char * odest = dest;
111+ unsigned int layla_comp (unsigned char *dest, int *destLen, unsigned char *src, int srcLen)
112+ {
113+ int n = srcLen - 1 , m = *destLen - 0x1 , T = 0 , d = 0 , p, q, i, j, k;
114+ unsigned char *odest = dest;
114115 for (; n >= 0x100 ;)
115116 {
116117 j = n + 3 + 0x2000 ;
117- if (j > srcLen) j = srcLen;
118- for (i = n + 3 , p = 0 ; i < j; i++)
118+ if (j> srcLen) j = srcLen;
119+ for (i = n + 3 , p = 0 ; i< j; i++)
119120 {
120121 for (k = 0 ; k <= n - 0x100 ; k++)
121122 {
122123 if (*(src + n - k) != *(src + i - k)) break ;
123124 }
124- if (k > p)
125+ if (k> p)
125126 {
126127 q = i - n - 3 ; p = k;
127128 }
128129 }
129- if (p < 3 )
130+ if (p< 3 )
130131 {
131132 d = (d << 9 ) | (*(src + n--)); T += 9 ;
132133 }
133134 else
134135 {
135136 d = (((d << 1 ) | 1 ) << 13 ) | q; T += 14 ; n -= p;
136- if (p < 6 )
137+ if (p< 6 )
137138 {
138139 d = (d << 2 ) | (p - 3 ); T += 2 ;
139140 }
140- else if (p < 13 )
141+ else if (p< 13 )
141142 {
142143 d = (((d << 2 ) | 3 ) << 3 ) | (p - 6 ); T += 5 ;
143144 }
144- else if (p < 44 )
145+ else if (p< 44 )
145146 {
146147 d = (((d << 5 ) | 0x1f ) << 5 ) | (p - 13 ); T += 10 ;
147148 }
@@ -152,17 +153,17 @@ unsigned int layla_comp(unsigned char* dest, unsigned int* destLen, unsigned cha
152153 {
153154 for (; T >= 8 ;)
154155 {
155- *(dest + m--) = (d >> (T - 8 )) & 0xff ; T -= 8 ; d = d & ((1 << T) - 1 );
156+ *(dest + m--) = (d >> (T - 8 )) & 0xff ; T -= 8 ; d = d& ((1 << T) - 1 );
156157 }
157- if (p < 255 ) break ;
158+ if (p< 255 ) break ;
158159 d = (d << 8 ) | 0xff ; T += 8 ; p = p - 0xff ;
159160 }
160161 d = (d << 8 ) | p; T += 8 ;
161162 }
162163 }
163164 for (; T >= 8 ;)
164165 {
165- *(dest + m--) = (d >> (T - 8 )) & 0xff ; T -= 8 ; d = d & ((1 << T) - 1 );
166+ *(dest + m--) = (d >> (T - 8 )) & 0xff ; T -= 8 ; d = d& ((1 << T) - 1 );
166167 }
167168 }
168169 if (T != 0 )
@@ -176,19 +177,19 @@ unsigned int layla_comp(unsigned char* dest, unsigned int* destLen, unsigned cha
176177 *(dest + m--) = 0 ;
177178 }
178179 *destLen = *destLen - m; dest += m;
179- unsigned int l[] = { 0x4c495243 ,0x414c5941 ,srcLen - 0x100 ,*destLen };
180- for (j = 0 ; j < 4 ; j++)
180+ int l[] = { 0x4c495243 ,0x414c5941 ,srcLen - 0x100 ,*destLen };
181+ for (j = 0 ; j< 4 ; j++)
181182 {
182- for (i = 0 ; i < 4 ; i++)
183+ for (i = 0 ; i< 4 ; i++)
183184 {
184185 *(odest + i + j * 4 ) = l[j] & 0xff ; l[j] >>= 8 ;
185186 }
186187 }
187- for (j = 0 , odest += 0x10 ; j < *destLen; j++)
188+ for (j = 0 , odest += 0x10 ; j< *destLen; j++)
188189 {
189190 *(odest++) = *(dest + j);
190191 }
191- for (j = 0 ; j < 0x100 ; j++)
192+ for (j = 0 ; j< 0x100 ; j++)
192193 {
193194 *(odest++) = *(src + j);
194195 }
@@ -218,18 +219,19 @@ unsigned char* CriLaylaDecompress(unsigned char* d){
218219
219220PyObject* CriLaylaCompress (PyObject* self, PyObject* args){
220221 unsigned char *data;
221- unsigned int data_size;
222+ Py_ssize_t data_size;
222223 if (!PyArg_ParseTuple (args, " y#" , &data, &data_size)){
223224 return NULL ;
224225 }
225226 unsigned char *buf = new unsigned char [data_size];
226227 memset (buf, 0 , data_size);
227228
229+ int compressed_size = data_size;
228230 Py_BEGIN_ALLOW_THREADS
229- layla_comp (buf, &data_size , data, data_size );
231+ layla_comp (buf, &compressed_size , data, compressed_size );
230232 Py_END_ALLOW_THREADS
231233
232- PyObject* bufObj = Py_BuildValue (" y#" , buf, data_size );
234+ PyObject* bufObj = Py_BuildValue (" y#" , buf, compressed_size );
233235 delete[] buf;
234236 return bufObj;
235237}
0 commit comments