Ejemplo n.º 1
0
//## 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]);
}
Ejemplo n.º 2
0
//## 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);
}
Ejemplo n.º 3
0
//## 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();
}
Ejemplo n.º 4
0
//## @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);
}
Ejemplo n.º 5
0
//## 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);
	}
}
Ejemplo n.º 6
0
//## @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]);
	}
}