mirror of
https://github.com/php/php-src.git
synced 2025-08-18 23:18:56 +02:00
- Change write macros to inline funcs
This commit is contained in:
parent
a90c542188
commit
d013240a01
1 changed files with 31 additions and 39 deletions
|
@ -1421,21 +1421,27 @@ static size_t phar_dirwrite(php_stream *stream, const char *buf, size_t count TS
|
||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
|
static inline void phar_set_32(char *buffer, int var) /* {{{ */
|
||||||
|
{
|
||||||
|
#ifdef WORDS_BIGENDIAN
|
||||||
|
*((buffer) + 3) = (unsigned char) (((var) << 24) & 0xFF);
|
||||||
|
*((buffer) + 2) = (unsigned char) (((var) << 16) & 0xFF);
|
||||||
|
*((buffer) + 1) = (unsigned char) (((var) << 8) & 0xFF);
|
||||||
|
*((buffer) + 0) = (unsigned char) ((var) & 0xFF);
|
||||||
|
#else
|
||||||
|
*(php_uint32 *)buffer = *(php_uint32*)(var);
|
||||||
|
#endif
|
||||||
|
} /* }}} */
|
||||||
|
|
||||||
|
static inline void phar_set_16(char *buffer, int var) /* {{{ */
|
||||||
|
{
|
||||||
#ifdef WORDS_BIGENDIAN
|
#ifdef WORDS_BIGENDIAN
|
||||||
# define PHAR_SET_32(buffer, var) \
|
|
||||||
*((buffer) + 3) = (unsigned char) (((var) << 24) & 0xFF); \
|
|
||||||
*((buffer) + 2) = (unsigned char) (((var) << 16) & 0xFF); \
|
|
||||||
*((buffer) + 1) = (unsigned char) (((var) << 8) & 0xFF); \
|
|
||||||
*(buffer) = (unsigned char) ((var) & 0xFF);
|
|
||||||
# define PHAR_SET_16(buffer, var) \
|
|
||||||
*((buffer) + 1) = (unsigned char) (((var) << 8) & 0xFF); \
|
*((buffer) + 1) = (unsigned char) (((var) << 8) & 0xFF); \
|
||||||
*(buffer) = (unsigned char) ((var) & 0xFF);
|
*(buffer) = (unsigned char) ((var) & 0xFF);
|
||||||
#else
|
#else
|
||||||
# define PHAR_SET_32(buffer, var) \
|
|
||||||
*(php_uint32 *)buffer = *(php_uint32*)(var);
|
|
||||||
# define PHAR_SET_16(buffer, var) \
|
|
||||||
*(php_uint16 *)buffer = *(php_uint16*)(var);
|
*(php_uint16 *)buffer = *(php_uint16*)(var);
|
||||||
#endif
|
#endif
|
||||||
|
} /* }}} */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used to save work done on a writeable phar
|
* Used to save work done on a writeable phar
|
||||||
|
@ -1476,16 +1482,10 @@ static int phar_flush(php_stream *stream TSRMLS_DC) /* {{{ */
|
||||||
*/
|
*/
|
||||||
manifest = (char *) emalloc(14 + data->phar->alias_len);
|
manifest = (char *) emalloc(14 + data->phar->alias_len);
|
||||||
/* use dummy value until we know the actual length */
|
/* use dummy value until we know the actual length */
|
||||||
copy = 0;
|
phar_set_32(manifest, 0); /* manifest length */
|
||||||
PHAR_SET_32(manifest, copy); /* manifest length */
|
phar_set_32(manifest+4, data->phar->manifest.nNumOfElements);
|
||||||
manifest += 4;
|
phar_set_16(manifest+8, PHAR_API_VERSION);
|
||||||
PHAR_SET_32(manifest, data->phar->manifest.nNumOfElements);
|
phar_set_32(manifest+10, data->phar->alias_len);
|
||||||
manifest += 4;
|
|
||||||
copy = PHAR_API_VERSION;
|
|
||||||
PHAR_SET_16(manifest, copy);
|
|
||||||
manifest += 2;
|
|
||||||
PHAR_SET_32(manifest, data->phar->alias_len);
|
|
||||||
manifest -= 10;
|
|
||||||
memcpy(manifest + 14, data->phar->alias, data->phar->alias_len);
|
memcpy(manifest + 14, data->phar->alias, data->phar->alias_len);
|
||||||
|
|
||||||
/* write the manifest header */
|
/* write the manifest header */
|
||||||
|
@ -1501,7 +1501,7 @@ static int phar_flush(php_stream *stream TSRMLS_DC) /* {{{ */
|
||||||
/* remove this from the new phar */
|
/* remove this from the new phar */
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
PHAR_SET_32(buffer, entry->filename_len);
|
phar_set_32(buffer, entry->filename_len);
|
||||||
memcpy(buffer + 4, entry->filename, entry->filename_len);
|
memcpy(buffer + 4, entry->filename, entry->filename_len);
|
||||||
if (4 + entry->filename_len != php_stream_write(newfile, buffer, 4 + entry->filename_len)) {
|
if (4 + entry->filename_len != php_stream_write(newfile, buffer, 4 + entry->filename_len)) {
|
||||||
|
|
||||||
|
@ -1520,22 +1520,18 @@ static int phar_flush(php_stream *stream TSRMLS_DC) /* {{{ */
|
||||||
1: flags (compression or not)
|
1: flags (compression or not)
|
||||||
*/
|
*/
|
||||||
copy = time(NULL);
|
copy = time(NULL);
|
||||||
PHAR_SET_32(buffer, entry->uncompressed_filesize);
|
phar_set_32(buffer, entry->uncompressed_filesize);
|
||||||
buffer += 4;
|
phar_set_32(buffer+4, copy);
|
||||||
PHAR_SET_32(buffer, copy);
|
phar_set_32(buffer+8, entry->compressed_filesize);
|
||||||
buffer += 4;
|
phar_set_32(buffer+12, entry->crc32);
|
||||||
PHAR_SET_32(buffer, entry->compressed_filesize);
|
buffer[16] = (char) entry->flags;
|
||||||
buffer += 4;
|
|
||||||
PHAR_SET_32(buffer, entry->crc32);
|
|
||||||
buffer[4] = (char) entry->flags;
|
|
||||||
buffer -= 11;
|
|
||||||
php_stream_write(newfile, buffer, 17);
|
php_stream_write(newfile, buffer, 17);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* write the actual manifest size */
|
/* write the actual manifest size */
|
||||||
file_ftell = php_stream_tell(newfile);
|
file_ftell = php_stream_tell(newfile);
|
||||||
copy = file_ftell - manifest_ftell;
|
copy = file_ftell - manifest_ftell;
|
||||||
PHAR_SET_32(manifest, copy);
|
phar_set_32(manifest, copy);
|
||||||
php_stream_seek(newfile, manifest_ftell, SEEK_SET);
|
php_stream_seek(newfile, manifest_ftell, SEEK_SET);
|
||||||
/* write the manifest header */
|
/* write the manifest header */
|
||||||
php_stream_write(newfile, manifest, 2);
|
php_stream_write(newfile, manifest, 2);
|
||||||
|
@ -1641,15 +1637,11 @@ static int phar_flush(php_stream *stream TSRMLS_DC) /* {{{ */
|
||||||
1: flags (compression or not)
|
1: flags (compression or not)
|
||||||
*/
|
*/
|
||||||
copy = time(NULL);
|
copy = time(NULL);
|
||||||
PHAR_SET_32(buffer, entry->uncompressed_filesize);
|
phar_set_32(buffer, entry->uncompressed_filesize);
|
||||||
buffer += 4;
|
phar_set_32(buffer+4, copy);
|
||||||
PHAR_SET_32(buffer, copy);
|
phar_set_32(buffer+8, entry->compressed_filesize);
|
||||||
buffer += 4;
|
phar_set_32(buffer+12, entry->crc32);
|
||||||
PHAR_SET_32(buffer, entry->compressed_filesize);
|
buffer[16] = (char) entry->flags;
|
||||||
buffer += 4;
|
|
||||||
PHAR_SET_32(buffer, entry->crc32);
|
|
||||||
buffer[4] = (char) entry->flags;
|
|
||||||
buffer -= 11;
|
|
||||||
php_stream_write(newfile, buffer, 17);
|
php_stream_write(newfile, buffer, 17);
|
||||||
}
|
}
|
||||||
/* finally, close the temp file, rename the original phar,
|
/* finally, close the temp file, rename the original phar,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue