aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-01-14 19:42:08 +0000
committerGravatar humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-01-14 19:42:08 +0000
commit18a48c3c1c1aa183a1b1ab033be34329685199f6 (patch)
tree8d771a3e536f005854bfd1e23dc59d0ac7fbebeb /src
parent6d29eda49129893d8f5e385bfbe8473af154b82b (diff)
replace getline with fgets for portability
BUG= Review URL: https://codereview.appspot.com/7085058 git-svn-id: http://skia.googlecode.com/svn/trunk@7163 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src')
-rw-r--r--src/ports/SkOSFile_stdio.cpp14
-rw-r--r--src/utils/SkRTConf.cpp18
2 files changed, 9 insertions, 23 deletions
diff --git a/src/ports/SkOSFile_stdio.cpp b/src/ports/SkOSFile_stdio.cpp
index e7f65cd499..7663f8799d 100644
--- a/src/ports/SkOSFile_stdio.cpp
+++ b/src/ports/SkOSFile_stdio.cpp
@@ -41,19 +41,11 @@ SkFILE* sk_fopen(const char path[], SkFILE_Flags flags)
return f;
}
-ptrdiff_t sk_getline(char **lineptr, size_t *n, SkFILE *f) {
- bool make_private_copy = (NULL == *lineptr);
-
- ptrdiff_t ret = ::getline(lineptr, n, (FILE *) f);
- if (make_private_copy) {
- char *local_copy = (char *) sk_malloc_throw(strlen(*lineptr) + 1);
- ::memcpy(local_copy, *lineptr, strlen(*lineptr));
- ::free(*lineptr);
- *lineptr = local_copy;
- }
- return ret;
+char* sk_fgets(char* str, int size, SkFILE* f) {
+ return ::fgets(str, size, (FILE *)f);
}
+
int sk_feof(SkFILE *f) {
return ::feof((FILE *)f);
}
diff --git a/src/utils/SkRTConf.cpp b/src/utils/SkRTConf.cpp
index 2ccfd061cb..38bc64ce76 100644
--- a/src/utils/SkRTConf.cpp
+++ b/src/utils/SkRTConf.cpp
@@ -16,29 +16,23 @@ SkRTConfRegistry::SkRTConfRegistry(): fConfs(100) {
return;
}
- char *line = NULL;
- size_t n = 0;
+ char line[1024];
while (!sk_feof(fp)) {
- if (line) {
- sk_free(line);
- }
- line = NULL;
- if (sk_getline(&line, &n, fp) == -1) break;
+ if (!sk_fgets(line, sizeof(line), fp)) {
+ break;
+ }
char *commentptr = strchr(line, '#');
if (commentptr == line) {
continue;
}
if (NULL != commentptr) {
- char *tmp = (char *) sk_malloc_throw(commentptr-line+1);
- strncpy(tmp, line, commentptr-line);
- sk_free(line);
- line = tmp;
+ *commentptr = '\0';
}
- char sep[] = " \t";
+ char sep[] = " \t\r\n";
char *keyptr = strtok(line, sep);
if (!keyptr) {