dovecot-1.2-sieve: Sieve binary: now using better defined intege...
pigeonhole at rename-it.nl
pigeonhole at rename-it.nl
Fri Jul 30 19:01:39 EEST 2010
details: http://hg.rename-it.nl/dovecot-1.2-sieve/rev/f91059c42ab1
changeset: 1265:f91059c42ab1
user: Stephan Bosch <stephan at rename-it.nl>
date: Fri Jul 30 17:56:10 2010 +0200
description:
Sieve binary: now using better defined integer types for byte-coded data.
diffstat:
src/lib-sieve/plugins/variables/ext-variables-common.c | 2 +-
src/lib-sieve/plugins/variables/ext-variables-dump.c | 2 +-
src/lib-sieve/sieve-binary.c | 34 ++++++++--------
src/lib-sieve/sieve-binary.h | 6 +-
src/lib-sieve/sieve-code.c | 6 +-
src/lib-sieve/sieve-interpreter.c | 2 +-
src/testsuite/cmd-test-fail.c | 2 +-
7 files changed, 27 insertions(+), 27 deletions(-)
diffs (233 lines):
diff -r a0cffaa484ee -r f91059c42ab1 src/lib-sieve/plugins/variables/ext-variables-common.c
--- a/src/lib-sieve/plugins/variables/ext-variables-common.c Fri Jul 30 17:15:46 2010 +0200
+++ b/src/lib-sieve/plugins/variables/ext-variables-common.c Fri Jul 30 17:56:10 2010 +0200
@@ -513,7 +513,7 @@
struct ext_variables_interpreter_context *ctx;
unsigned int scope_size;
sieve_size_t pc;
- int end_offset;
+ sieve_offset_t end_offset;
if ( !sieve_binary_read_unsigned(renv->sbin, address, &scope_size) ) {
sieve_sys_error("variables: failed to read main scope size");
diff -r a0cffaa484ee -r f91059c42ab1 src/lib-sieve/plugins/variables/ext-variables-dump.c
--- a/src/lib-sieve/plugins/variables/ext-variables-dump.c Fri Jul 30 17:15:46 2010 +0200
+++ b/src/lib-sieve/plugins/variables/ext-variables-dump.c Fri Jul 30 17:56:10 2010 +0200
@@ -74,7 +74,7 @@
struct sieve_variable_scope *main_scope;
unsigned int i, scope_size;
sieve_size_t pc;
- int end_offset;
+ sieve_offset_t end_offset;
sieve_code_mark(denv);
if ( !sieve_binary_read_unsigned(denv->sbin, address, &scope_size) )
diff -r a0cffaa484ee -r f91059c42ab1 src/lib-sieve/sieve-binary.c
--- a/src/lib-sieve/sieve-binary.c Fri Jul 30 17:15:46 2010 +0200
+++ b/src/lib-sieve/sieve-binary.c Fri Jul 30 17:56:10 2010 +0200
@@ -1468,7 +1468,7 @@
}
static inline void _sieve_binary_emit_byte
-(struct sieve_binary *sbin, unsigned char byte)
+(struct sieve_binary *sbin, uint8_t byte)
{
_sieve_binary_emit_data(sbin, &byte, 1);
}
@@ -1491,7 +1491,7 @@
}
sieve_size_t sieve_binary_emit_byte
-(struct sieve_binary *sbin, unsigned char byte)
+(struct sieve_binary *sbin, uint8_t byte)
{
sieve_size_t address = _sieve_binary_get_code_size(sbin);
@@ -1509,13 +1509,14 @@
/* Offset emission functions */
-sieve_size_t sieve_binary_emit_offset(struct sieve_binary *binary, int offset)
+sieve_size_t sieve_binary_emit_offset
+(struct sieve_binary *binary, sieve_offset_t offset)
{
int i;
sieve_size_t address = _sieve_binary_get_code_size(binary);
for ( i = 3; i >= 0; i-- ) {
- char c = (char) (offset >> (i * 8));
+ uint8_t c = (uint8_t) (offset >> (i * 8));
_sieve_binary_emit_data(binary, &c, 1);
}
@@ -1526,10 +1527,10 @@
(struct sieve_binary *binary, sieve_size_t address)
{
int i;
- int offset = _sieve_binary_get_code_size(binary) - address;
+ sieve_offset_t offset = _sieve_binary_get_code_size(binary) - address;
for ( i = 3; i >= 0; i-- ) {
- char c = (char) (offset >> (i * 8));
+ uint8_t c = (uint8_t) (offset >> (i * 8));
_sieve_binary_update_data(binary, address + 3 - i, &c, 1);
}
}
@@ -1544,7 +1545,7 @@
{
sieve_size_t address = _sieve_binary_get_code_size(binary);
int i;
- char buffer[sizeof(sieve_number_t) + 1];
+ uint8_t buffer[sizeof(sieve_number_t) + 1];
int bufpos = sizeof(buffer) - 1;
buffer[bufpos] = integer & 0x7F;
@@ -1630,11 +1631,11 @@
*/
#define ADDR_CODE_AT(binary, address) \
- ((signed char) ((binary)->code[*address]))
+ ((int8_t) ((binary)->code[*address]))
#define ADDR_DATA_AT(binary, address) \
- ((unsigned char) ((binary)->code[*address]))
+ ((uint8_t) ((binary)->code[*address]))
#define ADDR_POINTER(binary, address) \
- ((const char *) (&(binary)->code[*address]))
+ ((uint8_t *) (&(binary)->code[*address]))
#define ADDR_BYTES_LEFT(binary, address) \
((binary)->code_size - (*address))
#define ADDR_JUMP(address, offset) \
@@ -1643,7 +1644,7 @@
/* Literals */
bool sieve_binary_read_byte
- (struct sieve_binary *binary, sieve_size_t *address, unsigned int *byte_r)
+(struct sieve_binary *binary, sieve_size_t *address, unsigned int *byte_r)
{
if ( ADDR_BYTES_LEFT(binary, address) >= 1 ) {
if ( byte_r != NULL )
@@ -1658,7 +1659,7 @@
}
bool sieve_binary_read_code
- (struct sieve_binary *binary, sieve_size_t *address, signed int *code_r)
+(struct sieve_binary *binary, sieve_size_t *address, signed int *code_r)
{
if ( ADDR_BYTES_LEFT(binary, address) >= 1 ) {
if ( code_r != NULL )
@@ -1672,11 +1673,10 @@
return FALSE;
}
-
bool sieve_binary_read_offset
- (struct sieve_binary *binary, sieve_size_t *address, int *offset_r)
+(struct sieve_binary *binary, sieve_size_t *address, sieve_offset_t *offset_r)
{
- uint32_t offs = 0;
+ sieve_offset_t offs = 0;
if ( ADDR_BYTES_LEFT(binary, address) >= 4 ) {
int i;
@@ -1697,7 +1697,7 @@
/* FIXME: might need negative numbers in the future */
bool sieve_binary_read_integer
- (struct sieve_binary *binary, sieve_size_t *address, sieve_number_t *int_r)
+(struct sieve_binary *binary, sieve_size_t *address, sieve_number_t *int_r)
{
int bits = sizeof(sieve_number_t) * 8;
*int_r = 0;
@@ -1736,7 +1736,7 @@
return FALSE;
if ( str_r != NULL )
- *str_r = t_str_new_const(ADDR_POINTER(binary, address), strlen);
+ *str_r = t_str_new_const((const char *) ADDR_POINTER(binary, address), strlen);
ADDR_JUMP(address, strlen);
if ( ADDR_CODE_AT(binary, address) != 0 )
diff -r a0cffaa484ee -r f91059c42ab1 src/lib-sieve/sieve-binary.h
--- a/src/lib-sieve/sieve-binary.h Fri Jul 30 17:15:46 2010 +0200
+++ b/src/lib-sieve/sieve-binary.h Fri Jul 30 17:56:10 2010 +0200
@@ -126,7 +126,7 @@
sieve_size_t sieve_binary_emit_data
(struct sieve_binary *binary, const void *data, sieve_size_t size);
sieve_size_t sieve_binary_emit_byte
- (struct sieve_binary *binary, unsigned char byte);
+ (struct sieve_binary *binary, uint8_t byte);
void sieve_binary_update_data
(struct sieve_binary *binary, sieve_size_t address, const void *data,
sieve_size_t size);
@@ -135,7 +135,7 @@
/* Offset emission functions */
sieve_size_t sieve_binary_emit_offset
- (struct sieve_binary *binary, int offset);
+ (struct sieve_binary *binary, sieve_offset_t offset);
void sieve_binary_resolve_offset
(struct sieve_binary *binary, sieve_size_t address);
@@ -174,7 +174,7 @@
bool sieve_binary_read_code
(struct sieve_binary *binary, sieve_size_t *address, signed int *code_r);
bool sieve_binary_read_offset
- (struct sieve_binary *binary, sieve_size_t *address, int *offset_r);
+ (struct sieve_binary *binary, sieve_size_t *address, sieve_offset_t *offset_r);
bool sieve_binary_read_integer
(struct sieve_binary *binary, sieve_size_t *address, sieve_number_t *int_r);
bool sieve_binary_read_string
diff -r a0cffaa484ee -r f91059c42ab1 src/lib-sieve/sieve-code.c
--- a/src/lib-sieve/sieve-code.c Fri Jul 30 17:15:46 2010 +0200
+++ b/src/lib-sieve/sieve-code.c Fri Jul 30 17:56:10 2010 +0200
@@ -779,7 +779,7 @@
sieve_size_t pc = *address;
sieve_size_t end;
unsigned int length = 0;
- int end_offset;
+ sieve_offset_t end_offset;
if ( !sieve_binary_read_offset(denv->sbin, address, &end_offset) )
return FALSE;
@@ -799,7 +799,7 @@
sieve_size_t pc = *address;
sieve_size_t end;
unsigned int length = 0;
- int end_offset;
+ sieve_offset_t end_offset;
if ( !sieve_binary_read_offset(renv->sbin, address, &end_offset) )
return NULL;
@@ -1035,7 +1035,7 @@
{
const struct sieve_operation *op = &denv->oprtn;
unsigned int pc = *address;
- int offset;
+ sieve_offset_t offset;
if ( sieve_binary_read_offset(denv->sbin, address, &offset) )
sieve_code_dumpf(denv, "%s %d [%08x]",
diff -r a0cffaa484ee -r f91059c42ab1 src/lib-sieve/sieve-interpreter.c
--- a/src/lib-sieve/sieve-interpreter.c Fri Jul 30 17:15:46 2010 +0200
+++ b/src/lib-sieve/sieve-interpreter.c Fri Jul 30 17:56:10 2010 +0200
@@ -347,7 +347,7 @@
{
const struct sieve_runtime_env *renv = &interp->runenv;
sieve_size_t pc = interp->pc;
- int offset;
+ sieve_offset_t offset;
if ( !sieve_binary_read_offset(renv->sbin, &(interp->pc), &offset) )
{
diff -r a0cffaa484ee -r f91059c42ab1 src/testsuite/cmd-test-fail.c
--- a/src/testsuite/cmd-test-fail.c Fri Jul 30 17:15:46 2010 +0200
+++ b/src/testsuite/cmd-test-fail.c Fri Jul 30 17:56:10 2010 +0200
@@ -105,7 +105,7 @@
(const struct sieve_dumptime_env *denv, sieve_size_t *address)
{
unsigned int pc;
- int offset;
+ sieve_offset_t offset;
sieve_code_dumpf(denv, "TEST_FAIL:");
sieve_code_descend(denv);
More information about the dovecot-cvs
mailing list