tcltklib.c: compile info

* ext/tk/tcltklib.c (tcltklib_compile_info): build compile info
  statically.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-08-02 01:59:13 +00:00
parent 9fc370197a
commit 59cfce150b

View File

@ -9998,62 +9998,43 @@ lib_get_reltype_name(self)
static VALUE static VALUE
tcltklib_compile_info(void) tcltklib_compile_info(void)
{ {
volatile VALUE ret; VALUE ret;
size_t size; static const char info[] =
static CONST char form[] "tcltklib " TCLTKLIB_RELEASE_DATE " "
= "tcltklib %s :: Ruby%s (%s) %s pthread :: Tcl%s(%s)/Tk%s(%s) %s"; ":: Ruby" RUBY_VERSION" ("RUBY_RELEASE_DATE") "
char *info;
size = strlen(form)
+ strlen(TCLTKLIB_RELEASE_DATE)
+ strlen(RUBY_VERSION)
+ strlen(RUBY_RELEASE_DATE)
+ strlen("without")
+ strlen(TCL_PATCH_LEVEL)
+ strlen("without stub")
+ strlen(TK_PATCH_LEVEL)
+ strlen("without stub")
+ strlen("unknown tcl_threads");
info = ALLOC_N(char, size);
/* info = ckalloc(sizeof(char) * size); */ /* SEGV */
sprintf(info, form,
TCLTKLIB_RELEASE_DATE,
RUBY_VERSION, RUBY_RELEASE_DATE,
#ifdef HAVE_NATIVETHREAD #ifdef HAVE_NATIVETHREAD
"with", "with"
#else #else
"without", "without"
#endif #endif
TCL_PATCH_LEVEL, " pthread "
":: Tcl" TCL_PATCH_LEVEL "("
#ifdef USE_TCL_STUBS #ifdef USE_TCL_STUBS
"with stub", "with"
#else #else
"without stub", "without"
#endif #endif
TK_PATCH_LEVEL, " stub)"
"/"
"Tk" TK_PATCH_LEVEL "("
#ifdef USE_TK_STUBS #ifdef USE_TK_STUBS
"with stub", "with"
#else #else
"without stub", "without"
#endif #endif
" stub) "
#ifdef WITH_TCL_ENABLE_THREAD #ifdef WITH_TCL_ENABLE_THREAD
# if WITH_TCL_ENABLE_THREAD # if WITH_TCL_ENABLE_THREAD
"with tcl_threads" "with"
# else # else
"without tcl_threads" "without"
# endif # endif
#else #else
"unknown tcl_threads" "unknown"
#endif #endif
); " tcl_threads";
ret = rb_obj_freeze(rb_str_new2(info)); ret = rb_obj_freeze(rb_str_new2(info));
xfree(info);
/* ckfree(info); */
return ret; return ret;
} }