Author: mturk
Date: Fri Apr 24 07:59:26 2009
New Revision: 768214
URL: http://svn.apache.org/viewvc?rev=768214&view=rev
Log:
Use smaller initial size
Modified:
commons/sandbox/runtime/trunk/src/main/native/include/arch/unix/acr_arch.h
commons/sandbox/runtime/trunk/src/main/native/os/unix/uutils.c
commons/sandbox/runtime/trunk/src/main/native/test/testcase.c
Modified:
commons/sandbox/runtime/trunk/src/main/native/include/arch/unix/acr_arch.h
URL:
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/include/arch/unix/acr_arch.h?rev=768214&r1=768213&r2=768214&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/include/arch/unix/acr_arch.h
(original)
+++ commons/sandbox/runtime/trunk/src/main/native/include/arch/unix/acr_arch.h
Fri Apr 24 07:59:26 2009
@@ -29,6 +29,7 @@
#define ACR_JNI_PLATFORM_DECLARE(RT, CL, FN) \
JNIEXPORT RT JNICALL
Java_org_apache_commons_runtime_platform_unix_##CL##_##FN
+#define ACR_MIN_FREAD_LEN 4096
#define ACR_MAX_FREAD_LEN 65536
/**
Modified: commons/sandbox/runtime/trunk/src/main/native/os/unix/uutils.c
URL:
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/unix/uutils.c?rev=768214&r1=768213&r2=768214&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/unix/uutils.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/unix/uutils.c Fri Apr 24
07:59:26 2009
@@ -24,17 +24,29 @@
char *ACR_FileReadTxt(const char *name)
{
FILE *f;
- size_t i, rd = ACR_MAX_FREAD_LEN;
+ size_t rd = ACR_MIN_FREAD_LEN;
char *b;
if (!(f = fopen(name, "r")))
return NULL;
if ((b = malloc(rd))) {
- rd = fread(b, 1, rd - 2, f);
-
- if (rd > 0) {
+ size_t i, nr = fread(b, 1, rd - 2, f);
+ if (nr == (rd - 2)) {
+ /* Try with larger buffer size */
+ char *nb = malloc(ACR_MAX_FREAD_LEN);
+ if (nb) {
+ memcpy(nb, b, nr);
+ free(b);
+ b = nb;
+ rd = ACR_MAX_FREAD_LEN - nr;
+ nr += fread(b + nr, 1, rd - 2, f);
+ }
+ else
+ nr = 0;
+ }
+ if (nr > 0) {
/* Remove all trailing zero and space characters */
- for (i = rd - 1; i >= 0 && (acr_iscntrl(b[i]) ||
+ for (i = nr - 1; i >= 0 && (acr_iscntrl(b[i]) ||
acr_isspace(b[i])); i--)
;
b[i + 1] = '\0';
Modified: commons/sandbox/runtime/trunk/src/main/native/test/testcase.c
URL:
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/test/testcase.c?rev=768214&r1=768213&r2=768214&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/test/testcase.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/test/testcase.c Fri Apr 24
07:59:26 2009
@@ -334,3 +334,4 @@
return rv;
}
+