//## int Bytes.get(int n); static KMETHOD Bytes_get(KonohaContext *kctx, KonohaStack *sfp) { kBytes *ba = sfp[0].asBytes; size_t n = (size_t)sfp[1].intValue; KCheckIndex(n, ba->bytesize); KReturnUnboxValue(ba->utext[n]); }
//## String ResultSet.getName(Int n); static KMETHOD ResultSet_getName(KonohaContext *kctx, KonohaStack *sfp) { kResultSet *rs = (kResultSet *)sfp[0].asObject; size_t n = (size_t)sfp[1].intValue; KCheckIndex(n, rs->column_size); KReturn(rs->column[n].name); }
//## void Bytes.set(int index, int c); static KMETHOD Bytes_Set(KonohaContext *kctx, KonohaStack *sfp) { kBytes *ba = sfp[0].asBytes; size_t n = (size_t)sfp[1].intValue; KCheckIndex(n, ba->bytesize); ba->buf[n] = sfp[2].intValue; KReturnVoid(); }
//## @Native int File.write(Bytes buf, int offset, int len); static KMETHOD File_Write3(KonohaContext *kctx , KonohaStack *sfp) { kFile *file = sfp[0].asFile; kBytes *ba = sfp[1].asBytes; size_t offset = (size_t) sfp[2].intValue; KCheckIndex(offset, ba->bytesize); size_t len = (size_t) sfp[3].intValue; if(len == 0) { len = ba->bytesize - offset; } else { KCheckIndex(offset + len - 1, ba->bytesize); } KMakeTrace(trace, sfp); size_t writtenbyte = TRACE_fwrite(kctx, file, ba->buf + offset, len, trace); KReturnUnboxValue(writtenbyte); }
//## method void Array.set(Int n, T0 v); static KMETHOD Array_set(KonohaContext *kctx, KonohaStack *sfp) { kArray *a = sfp[0].asArray; size_t n = (size_t)sfp[1].intValue; KCheckIndex(n, kArray_size(a)); if(kArray_isUnboxData(a)) { a->unboxItems[n] = sfp[2].unboxValue; } else { KFieldSet(a, a->ObjectItems[n], sfp[2].asObject); } }
//## @Immutable method T0 Array.get(Int n); static KMETHOD Array_get(KonohaContext *kctx, KonohaStack *sfp) { kArray *a = sfp[0].asArray; size_t n = (size_t)sfp[1].intValue; KCheckIndex(n, kArray_size(a)); if(kArray_isUnboxData(a)) { KReturnUnboxValue(a->unboxItems[n]); } else { KReturn(a->ObjectItems[n]); } }