Fossil SCM

Update deltafunc.c's deltaGetInt() to match the copy from delta.c (applied in [60c7b5f423] and in sqlite's counterpart copy). Reported by Dan Mestas.

stephan 2026-10-12 08:03 UTC trunk
Commit 21d8fadb3084fb1e8229f64dc95a81323d2f782e6434b173e766853a01ac8eaa
1 file changed +15 -5
+15 -5
--- src/deltafunc.c
+++ src/deltafunc.c
@@ -201,20 +201,30 @@
201201
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,
202202
-1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
203203
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, 36,
204204
-1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
205205
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, -1, 63, -1,
206
+
207
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
208
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
209
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
210
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
211
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
212
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
213
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
214
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
206215
};
207216
unsigned int v = 0;
208217
int c;
209218
unsigned char *z = (unsigned char*)*pz;
210
- unsigned char *zStart = z;
211
- while( (c = zValue[0x7f&*(z++)])>=0 ){
212
- v = (v<<6) + c;
219
+ unsigned char *zEnd = z + (*pLen);
220
+ while( z<zEnd && (c = zValue[*z])>=0 ){
221
+ v = (v<<6) + c;
222
+ z++;
213223
}
214
- z--;
215
- *pLen -= z - zStart;
224
+
225
+ *pLen -= (int)(z - (unsigned char*)*pz);
216226
*pz = (char*)z;
217227
return v;
218228
}
219229
220230
/*
221231
--- src/deltafunc.c
+++ src/deltafunc.c
@@ -201,20 +201,30 @@
201 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,
202 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
203 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, 36,
204 -1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
205 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, -1, 63, -1,
 
 
 
 
 
 
 
 
 
206 };
207 unsigned int v = 0;
208 int c;
209 unsigned char *z = (unsigned char*)*pz;
210 unsigned char *zStart = z;
211 while( (c = zValue[0x7f&*(z++)])>=0 ){
212 v = (v<<6) + c;
 
213 }
214 z--;
215 *pLen -= z - zStart;
216 *pz = (char*)z;
217 return v;
218 }
219
220 /*
221
--- src/deltafunc.c
+++ src/deltafunc.c
@@ -201,20 +201,30 @@
201 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,
202 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
203 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, 36,
204 -1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
205 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, -1, 63, -1,
206
207 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
208 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
209 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
210 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
211 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
212 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
213 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
214 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
215 };
216 unsigned int v = 0;
217 int c;
218 unsigned char *z = (unsigned char*)*pz;
219 unsigned char *zEnd = z + (*pLen);
220 while( z<zEnd && (c = zValue[*z])>=0 ){
221 v = (v<<6) + c;
222 z++;
223 }
224
225 *pLen -= (int)(z - (unsigned char*)*pz);
226 *pz = (char*)z;
227 return v;
228 }
229
230 /*
231

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button