From 18a48c3c1c1aa183a1b1ab033be34329685199f6 Mon Sep 17 00:00:00 2001 From: "humper@google.com" Date: Mon, 14 Jan 2013 19:42:08 +0000 Subject: 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 --- src/ports/SkOSFile_stdio.cpp | 14 +++----------- src/utils/SkRTConf.cpp | 18 ++++++------------ 2 files changed, 9 insertions(+), 23 deletions(-) (limited to 'src') 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) { -- cgit v1.2.3