change return type of pic_str_new to struct pic_string *

This commit is contained in:
Yuichi Nishiwaki 2013-11-18 00:28:42 +09:00
parent ca66291d93
commit 6ac3055816
5 changed files with 11 additions and 12 deletions

View File

@ -102,8 +102,8 @@ void pic_defun(pic_state *, const char *, pic_func_t);
pic_sym pic_intern_cstr(pic_state *, const char *); pic_sym pic_intern_cstr(pic_state *, const char *);
const char *pic_symbol_name(pic_state *, pic_sym); const char *pic_symbol_name(pic_state *, pic_sym);
pic_value pic_str_new(pic_state *, const char *, size_t); struct pic_string *pic_str_new(pic_state *, const char *, size_t);
pic_value pic_str_new_cstr(pic_state *, const char *); struct pic_string *pic_str_new_cstr(pic_state *, const char *);
struct pic_vector *pic_vec_new(pic_state *, size_t); struct pic_vector *pic_vec_new(pic_state *, size_t);
struct pic_vector *pic_vec_new_from_list(pic_state *, pic_value); struct pic_vector *pic_vec_new_from_list(pic_state *, pic_value);

View File

@ -154,7 +154,7 @@ pic_error_error_object_message(pic_state *pic)
pic_get_args(pic, "e", &e); pic_get_args(pic, "e", &e);
return pic_str_new_cstr(pic, e->msg); return pic_obj_value(pic_str_new_cstr(pic, e->msg));
} }
static pic_value static pic_value

View File

@ -2,7 +2,7 @@
#include "picrin.h" #include "picrin.h"
pic_value struct pic_string *
pic_str_new(pic_state *pic, const char *cstr, size_t len) pic_str_new(pic_state *pic, const char *cstr, size_t len)
{ {
struct pic_string *str; struct pic_string *str;
@ -10,11 +10,10 @@ pic_str_new(pic_state *pic, const char *cstr, size_t len)
str = (struct pic_string *)pic_obj_alloc(pic, sizeof(struct pic_string), PIC_TT_STRING); str = (struct pic_string *)pic_obj_alloc(pic, sizeof(struct pic_string), PIC_TT_STRING);
str->len = len; str->len = len;
str->str = strdup(cstr); str->str = strdup(cstr);
return str;
return pic_obj_value(str);
} }
pic_value struct pic_string *
pic_str_new_cstr(pic_state *pic, const char *cstr) pic_str_new_cstr(pic_state *pic, const char *cstr)
{ {
size_t len; size_t len;

View File

@ -52,7 +52,7 @@ pic_symbol_symbol_to_string(pic_state *pic)
pic_error(pic, "symbol->string: expected symbol"); pic_error(pic, "symbol->string: expected symbol");
} }
return pic_str_new_cstr(pic, pic_symbol_name(pic, pic_sym(v))); return pic_obj_value(pic_str_new_cstr(pic, pic_symbol_name(pic, pic_sym(v))));
} }
static pic_value static pic_value

View File

@ -14,7 +14,7 @@ pic_system_cmdline(pic_state *pic)
for (i = 0; i < pic->argc; ++i) { for (i = 0; i < pic->argc; ++i) {
int ai = pic_gc_arena_preserve(pic); int ai = pic_gc_arena_preserve(pic);
v = pic_cons(pic, pic_str_new_cstr(pic, pic->argv[i]), v); v = pic_cons(pic, pic_obj_value(pic_str_new_cstr(pic, pic->argv[i])), v);
pic_gc_arena_restore(pic, ai); pic_gc_arena_restore(pic, ai);
} }
@ -80,7 +80,7 @@ pic_system_getenv(pic_state *pic)
if (val == NULL) if (val == NULL)
return pic_nil_value(); return pic_nil_value();
else else
return pic_str_new_cstr(pic, val); return pic_obj_value(pic_str_new_cstr(pic, val));
} }
static pic_value static pic_value
@ -99,8 +99,8 @@ pic_system_getenvs(pic_state *pic)
for (i = 0; (*envp)[i] != '='; ++i) for (i = 0; (*envp)[i] != '='; ++i)
; ;
key = pic_str_new(pic, *envp, i); key = pic_obj_value(pic_str_new(pic, *envp, i));
val = pic_str_new_cstr(pic, getenv(*envp)); val = pic_obj_value(pic_str_new_cstr(pic, getenv(*envp)));
/* push */ /* push */
data = pic_acons(pic, key, val, data); data = pic_acons(pic, key, val, data);