diff options
author | humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-01-14 19:42:08 +0000 |
---|---|---|
committer | humper@google.com <humper@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-01-14 19:42:08 +0000 |
commit | 18a48c3c1c1aa183a1b1ab033be34329685199f6 (patch) | |
tree | 8d771a3e536f005854bfd1e23dc59d0ac7fbebeb /src | |
parent | 6d29eda49129893d8f5e385bfbe8473af154b82b (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.cpp | 14 | ||||
-rw-r--r-- | src/utils/SkRTConf.cpp | 18 |
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) { |