Ignore:
Timestamp:
Jan 21, 2018, 12:10:09 AM (6 years ago)
Author:
coas-nagasima
Message:

prototoolに関連するプロジェクトをnewlibからmuslを使うよう変更・更新
ntshellをnewlibの下位の実装から、muslのsyscallの実装に変更・更新
以下のOSSをアップデート
・mruby-1.3.0
・musl-1.1.18
・onigmo-6.1.3
・tcc-0.9.27
以下のOSSを追加
・openssl-1.1.0e
・curl-7.57.0
・zlib-1.2.11
以下のmrbgemsを追加
・iij/mruby-digest
・iij/mruby-env
・iij/mruby-errno
・iij/mruby-iijson
・iij/mruby-ipaddr
・iij/mruby-mock
・iij/mruby-require
・iij/mruby-tls-openssl

Location:
EcnlProtoTool/trunk/mruby-1.3.0
Files:
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/mruby-1.3.0/src/object.c

    r321 r331  
    55*/
    66
    7 #include "mruby.h"
    8 #include "mruby/class.h"
    9 #include "mruby/numeric.h"
    10 #include "mruby/string.h"
     7#include <mruby.h>
     8#include <mruby/class.h>
     9#include <mruby/numeric.h>
     10#include <mruby/string.h>
     11#include <mruby/class.h>
    1112
    1213MRB_API mrb_bool
     
    266267
    267268  mrb->nil_class   = n = mrb_define_class(mrb, "NilClass",   mrb->object_class);
     269  MRB_SET_INSTANCE_TT(n, MRB_TT_TRUE);
    268270  mrb_undef_class_method(mrb, n, "new");
    269271  mrb_define_method(mrb, n, "&",    false_and,      MRB_ARGS_REQ(1));  /* 15.2.4.3.1  */
     
    275277
    276278  mrb->true_class  = t = mrb_define_class(mrb, "TrueClass",  mrb->object_class);
     279  MRB_SET_INSTANCE_TT(t, MRB_TT_TRUE);
    277280  mrb_undef_class_method(mrb, t, "new");
    278281  mrb_define_method(mrb, t, "&",    true_and,       MRB_ARGS_REQ(1));  /* 15.2.5.3.1  */
     
    283286
    284287  mrb->false_class = f = mrb_define_class(mrb, "FalseClass", mrb->object_class);
     288  MRB_SET_INSTANCE_TT(f, MRB_TT_TRUE);
    285289  mrb_undef_class_method(mrb, f, "new");
    286290  mrb_define_method(mrb, f, "&",    false_and,      MRB_ARGS_REQ(1));  /* 15.2.6.3.1  */
     
    349353  mrb_value v;
    350354
    351   if (mrb_type(val) == type && type != MRB_TT_DATA) return val;
     355  if (mrb_type(val) == type && type != MRB_TT_DATA && type != MRB_TT_ISTRUCT) return val;
    352356  v = convert_type(mrb, val, tname, method, FALSE);
    353357  if (mrb_nil_p(v) || mrb_type(v) != type) return mrb_nil_value();
     
    381385/*    {MRB_TT_NODE,  "Node"}, */ /* internal use: syntax tree node */
    382386/*    {MRB_TT_UNDEF,  "undef"}, */ /* internal use: #undef; should not happen */
    383     {-1,  0}
     387  {MRB_TT_MAXDEFINE,  0}
    384388};
    385389
     
    391395
    392396  xt = mrb_type(x);
    393   if ((xt != t) || (xt == MRB_TT_DATA)) {
     397  if ((xt != t) || (xt == MRB_TT_DATA) || (xt == MRB_TT_ISTRUCT)) {
    394398    while (type->type < MRB_TT_MAXDEFINE) {
    395399      if (type->type == t) {
     
    441445  mrb_str_cat_cstr(mrb, str, cname);
    442446  mrb_str_cat_lit(mrb, str, ":");
    443   mrb_str_concat(mrb, str, mrb_ptr_to_str(mrb, mrb_cptr(obj)));
     447  mrb_str_concat(mrb, str, mrb_ptr_to_str(mrb, mrb_ptr(obj)));
    444448  mrb_str_cat_lit(mrb, str, ">");
    445449
     
    482486    case MRB_TT_CLASS:
    483487    case MRB_TT_ICLASS:
     488    case MRB_TT_SCLASS:
    484489      break;
    485490
     
    530535    case MRB_TT_FLOAT:
    531536      if (base != 0) goto arg_error;
    532       if (FIXABLE(mrb_float(val))) {
    533         break;
     537      else {
     538        mrb_float f = mrb_float(val);
     539        if (FIXABLE_FLOAT(f)) {
     540          break;
     541        }
    534542      }
    535543      return mrb_flo_to_fixnum(mrb, val);
     
    549557    tmp = mrb_check_string_type(mrb, val);
    550558    if (!mrb_nil_p(tmp)) {
     559      val = tmp;
    551560      goto string_conv;
    552561    }
Note: See TracChangeset for help on using the changeset viewer.