Exemplo n.º 1
0
void kp_objclone(ktap_state *ks, const ktap_value *o, ktap_value *newo)
{
	if (ttisbtrace(o)) {
		ktap_btrace *bt;
		bt = kp_newbacktrace(ks);
		bt->nr_entries = btvalue(o)->nr_entries;
		memcpy(&bt->entries[0], &btvalue(o)->entries[0],
					sizeof(bt->entries));
		setbtvalue(newo, bt);
	} else {
		kp_error(ks, "cannot clone ktap value type %d\n", ttype(o));
		setnilvalue(newo);
	}
}
Exemplo n.º 2
0
void kp_objclone(ktap_state *ks, const ktap_value *o, ktap_value *newo,
		 ktap_gcobject **list)
{
	if (ttisbtrace(o)) {
		int nr_entries = btvalue(o)->nr_entries;
		ktap_btrace *bt;

		bt = kp_newbacktrace(ks, nr_entries, list);
		memcpy((unsigned long *)(bt + 1), btvalue(o) + 1,
			nr_entries * sizeof(unsigned long));
		setbtvalue(newo, bt);
	} else {
		kp_error(ks, "cannot clone ktap value type %d\n", ttype(o));
		setnilvalue(newo);
	}
}