cvs: ZendEngine2 / zend_stream.c
[email protected] ("Nuno Lopes") Wed, 28 Jan 2009 23:20:27 -0000
| Newsgroups | php.zend-engine.cvs |
|---|---|
| Message-ID | <cvsnlopess1233184827@cvsserver> |
nlopess Wed Jan 28 23:20:27 2009 UTC
Modified files:
/ZendEngine2 zend_stream.c
Log:
MFB: turn the offset parameter of mmap() back to 0
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_stream.c?r1=1.25&r2=1.26&diff_format=u
Index: ZendEngine2/zend_stream.c
diff -u ZendEngine2/zend_stream.c:1.25 ZendEngine2/zend_stream.c:1.26
--- ZendEngine2/zend_stream.c:1.25 Fri Jan 9 17:20:56 2009
+++ ZendEngine2/zend_stream.c Wed Jan 28 23:20:26 2009
@@ -19,7 +19,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_stream.c,v 1.25 2009/01/09 17:20:56 iliaa Exp $ */
+/* $Id: zend_stream.c,v 1.26 2009/01/28 23:20:26 nlopess Exp $ */
#include "zend.h"
@@ -219,11 +219,18 @@
#if HAVE_MMAP
if (file_handle->handle.fp) {
/* *buf[size] is zeroed automatically by the kernel */
- *buf = mmap(0, size + ZEND_MMAP_AHEAD, PROT_READ, MAP_PRIVATE, fileno(file_handle->handle.fp), ftell(file_handle->handle.fp));
+ *buf = mmap(0, size + ZEND_MMAP_AHEAD, PROT_READ, MAP_PRIVATE, fileno(file_handle->handle.fp), 0);
if (*buf != MAP_FAILED) {
- file_handle->handle.stream.mmap.len = size;
+ long offset = ftell(file_handle->handle.fp);
file_handle->handle.stream.mmap.map = *buf;
+
+ if (offset != -1) {
+ *buf += offset;
+ size -= offset;
+ }
file_handle->handle.stream.mmap.buf = *buf;
+ file_handle->handle.stream.mmap.len = size;
+
goto return_mapped;
}
}