Jelajahi Sumber

TestSerialize compiling

Nicolas Cannasse 9 tahun lalu
induk
melakukan
5ec2b5ea29
2 mengubah file dengan 28 tambahan dan 0 penghapusan
  1. 14 0
      src/std/date.c
  2. 14 0
      src/std/types.c

+ 14 - 0
src/std/date.c

@@ -39,6 +39,20 @@ HL_PRIM vbyte *hl_date_to_string( int date, int *len ) {
 	return (vbyte*)out;
 }
 
+HL_PRIM double hl_date_get_time( int date ) {
+	return date * 1000.;
+}
+
+HL_PRIM int hl_date_from_time( double time ) {
+	return (int)(time / 1000.);
+}
+
+HL_PRIM int hl_date_from_string( vbyte *b ) {
+	uchar *str = (uchar*)b;
+	hl_fatal("TODO");
+	return 0;
+}
+
 HL_PRIM int hl_date_new( int y, int mo, int d, int h, int m, int s ) {
 	struct tm t;
 	memset(&t,0,sizeof(struct tm));

+ 14 - 0
src/std/types.c

@@ -355,6 +355,20 @@ HL_PRIM vdynamic *hl_ealloc( hl_type *t, int index, varray *args ) {
 	return v;
 }
 
+HL_PRIM varray *hl_enum_parameters( vdynamic *v ) {
+	varray *a;
+	venum *e = (venum*)v->v.ptr;
+	hl_enum_construct *c = v->t->tenum->constructs + e->index;
+	int i;
+	a = (varray*)hl_gc_alloc(sizeof(varray)+c->nparams*sizeof(void*));
+	a->t = &hlt_array;
+	a->at = &hlt_dyn;
+	a->size = c->nparams;
+	for(i=0;i<c->nparams;i++)
+		((vdynamic**)(a+1))[i] = hl_make_dyn(e+c->offsets[i],c->params[i]);
+	return a;
+}
+
 DEFINE_PRIM(_BOOL, hl_type_check, _TYPE _DYN);
 DEFINE_PRIM(_BYTES, hl_type_name, _TYPE);
 DEFINE_PRIM(_ARR, hl_type_enum_fields, _TYPE);