Skip to content

Commit 05606f2

Browse files
committed
add cue_value_error to extract errors from CUE values
Also export C's free function in order to be able to be called from Java. Signed-off-by: Aram Hăvărneanu <[email protected]>
1 parent 364e9ce commit 05606f2

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

alloc.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,9 @@ void
3636
cue_free_all(uintptr_t *p) {
3737
cue_free_all_inner_raw(p, cue_cgo_handle_slice_len(p));
3838
free(p);
39-
}
39+
}
40+
41+
void
42+
libc_free(void *p) {
43+
free(p);
44+
}

cue.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ cue_error cue_validate(cue_value, cue_eopt*);
123123
cue_value cue_default(cue_value, bool*);
124124
cue_kind cue_concrete_kind(cue_value);
125125
cue_kind cue_incomplete_kind(cue_value);
126+
cue_error cue_value_error(cue_value);
126127
bool cue_is_equal(cue_value, cue_value);
127128

128129
cue_bopt cue_filename(char*);
@@ -151,6 +152,7 @@ char* cue_attr_value(cue_attr);
151152

152153
void cue_free(uintptr_t);
153154
void cue_free_all(uintptr_t*);
155+
void libc_free(void*);
154156

155157
#ifdef __cplusplus
156158
}

value.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,4 +274,12 @@ func cue_incomplete_kind(v C.cue_value) C.cue_kind {
274274
return C.CUE_KIND_TOP
275275
}
276276
panic("unreachable")
277-
}
277+
}
278+
279+
//export cue_value_error
280+
func cue_value_error(v C.cue_value) C.cue_error {
281+
if err := cueValue(v).Err(); err != nil {
282+
return cueErrorHandle(err)
283+
}
284+
return 0
285+
}

0 commit comments

Comments
 (0)