本文整理汇总了C++中caml_invalid_argument函数的典型用法代码示例。如果您正苦于以下问题:C++ caml_invalid_argument函数的具体用法?C++ caml_invalid_argument怎么用?C++ caml_invalid_argument使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了caml_invalid_argument函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: caml_ba_from_string
/* Bigarray from string */
CAMLprim value caml_ba_from_string(value vkind, value vlayout, value vstr)
{
intnat dim[CAML_BA_MAX_NUM_DIMS];
mlsize_t num_dims;
int i, flags;
num_dims = 1;
if (num_dims < 1 || num_dims > CAML_BA_MAX_NUM_DIMS)
caml_invalid_argument("Bigarray.create: bad number of dimensions");
for (i = 0; i < num_dims; i++) {
dim[i] = caml_string_length(vstr);
if (dim[i] < 0)
caml_invalid_argument("Bigarray.create: negative dimension");
}
flags = Int_val(vkind) | Int_val(vlayout) | CAML_BA_EXTERNAL;
return caml_ba_alloc(flags, num_dims, String_val(vstr), dim);
}
开发者ID:jessicah,项目名称:ocaml-alac,代码行数:18,代码来源:bigarray_extra_stubs.c
示例2: caml_ba_create
CAMLprim value caml_ba_create(value vkind, value vlayout, value vdim)
{
intnat dim[CAML_BA_MAX_NUM_DIMS];
mlsize_t num_dims;
int i, flags;
num_dims = Wosize_val(vdim);
if (num_dims < 1 || num_dims > CAML_BA_MAX_NUM_DIMS)
caml_invalid_argument("Bigarray.create: bad number of dimensions");
for (i = 0; i < num_dims; i++) {
dim[i] = Long_val(Field(vdim, i));
if (dim[i] < 0)
caml_invalid_argument("Bigarray.create: negative dimension");
}
flags = Int_val(vkind) | Int_val(vlayout);
return caml_ba_alloc(flags, num_dims, NULL, dim);
}
开发者ID:avsm,项目名称:ocaml-ppa,代码行数:17,代码来源:bigarray_stubs.c
示例3: caml_create_string
CAMLprim value caml_create_string(value len)
{
mlsize_t size = Long_val(len);
if (size > Bsize_wsize (Max_wosize) - 1){
caml_invalid_argument("String.create");
}
return caml_alloc_string(size);
}
开发者ID:avsm,项目名称:ocaml-community,代码行数:8,代码来源:str.c
示例4: c_arraydensematrix_potrs
CAMLprim value c_arraydensematrix_potrs(value va, value vb)
{
CAMLparam2(va, vb);
struct caml_ba_array *ba = ARRAY2_DATA(va);
intnat m = ba->dim[1];
#if SUNDIALS_ML_SAFE == 1
intnat n = ba->dim[0];
if (m != n)
caml_invalid_argument("ArrayDenseMatrix.potrs: matrix not square.");
if (ARRAY1_LEN(vb) < m)
caml_invalid_argument("ArrayDenseMatrix.potrs: b is too small.");
#endif
densePOTRS(ARRAY2_ACOLS(va), m, REAL_ARRAY(vb));
CAMLreturn (Val_unit);
}
开发者ID:gasche,项目名称:sundialsml,代码行数:18,代码来源:dls_ml.c
示例5: caml_weak_check
CAMLprim value caml_weak_check (value ar, value n)
{
mlsize_t offset = Long_val (n) + 1;
Assert (Is_in_heap (ar));
if (offset < 1 || offset >= Wosize_val (ar)){
caml_invalid_argument ("Weak.get");
}
return Val_bool (Field (ar, offset) != caml_weak_none);
}
开发者ID:bobzhang,项目名称:ocaml,代码行数:9,代码来源:weak.c
示例6: stub_mmap_write
CAMLprim value stub_mmap_write(value intf, value data,
value start, value len)
{
CAMLparam4(intf, data, start, len);
int c_start;
int c_len;
c_start = Int_val(start);
c_len = Int_val(len);
if (c_start > Intf_val(intf)->len)
caml_invalid_argument("start invalid");
if (c_start + c_len > Intf_val(intf)->len)
caml_invalid_argument("len invalid");
memcpy(Intf_val(intf)->addr + c_start, (char *) data, c_len);
CAMLreturn(Val_unit);
}
开发者ID:0day-ci,项目名称:xen,代码行数:19,代码来源:xenmmap_stubs.c
示例7: caml_ba_set_aux
static value caml_ba_set_aux(value vb, value * vind, intnat nind, value newval)
{
struct caml_ba_array * b = Caml_ba_array_val(vb);
intnat index[CAML_BA_MAX_NUM_DIMS];
int i;
intnat offset;
/* Check number of indices = number of dimensions of array
(maybe not necessary if ML typing guarantees this) */
if (nind != b->num_dims)
caml_invalid_argument("Bigarray.set: wrong number of indices");
/* Compute offset and check bounds */
for (i = 0; i < b->num_dims; i++) index[i] = Long_val(vind[i]);
offset = caml_ba_offset(b, index);
/* Perform write */
switch (b->flags & CAML_BA_KIND_MASK) {
default:
Assert(0);
#ifdef _KERNEL
#else
case CAML_BA_FLOAT32:
((float *) b->data)[offset] = Double_val(newval); break;
case CAML_BA_FLOAT64:
((double *) b->data)[offset] = Double_val(newval); break;
#endif
case CAML_BA_SINT8:
case CAML_BA_UINT8:
((int8 *) b->data)[offset] = Int_val(newval); break;
case CAML_BA_SINT16:
case CAML_BA_UINT16:
((int16 *) b->data)[offset] = Int_val(newval); break;
case CAML_BA_INT32:
((int32 *) b->data)[offset] = Int32_val(newval); break;
case CAML_BA_INT64:
((int64 *) b->data)[offset] = Int64_val(newval); break;
case CAML_BA_NATIVE_INT:
((intnat *) b->data)[offset] = Nativeint_val(newval); break;
case CAML_BA_CAML_INT:
((intnat *) b->data)[offset] = Long_val(newval); break;
#ifdef _KERNEL
#else
case CAML_BA_COMPLEX32:
{ float * p = ((float *) b->data) + offset * 2;
p[0] = Double_field(newval, 0);
p[1] = Double_field(newval, 1);
break; }
case CAML_BA_COMPLEX64:
{ double * p = ((double *) b->data) + offset * 2;
p[0] = Double_field(newval, 0);
p[1] = Double_field(newval, 1);
break; }
#endif
}
return Val_unit;
}
开发者ID:avsm,项目名称:mirage-kfreebsd,代码行数:55,代码来源:bigarray_stubs.c
示例8: stub_mmap_read
CAMLprim value stub_mmap_read(value intf, value start, value len)
{
CAMLparam3(intf, start, len);
CAMLlocal1(data);
int c_start;
int c_len;
c_start = Int_val(start);
c_len = Int_val(len);
if (c_start > Intf_val(intf)->len)
caml_invalid_argument("start invalid");
if (c_start + c_len > Intf_val(intf)->len)
caml_invalid_argument("len invalid");
data = caml_alloc_string(c_len);
memcpy((char *) data, Intf_val(intf)->addr + c_start, c_len);
CAMLreturn(data);
}
开发者ID:0day-ci,项目名称:xen,代码行数:20,代码来源:xenmmap_stubs.c
示例9: pattern_get
CAMLprim value pattern_get(value pat, value prop, value id)
{
CAMLparam0();
CAMLlocal1(res);
FcResult result;
FcValue val;
result = FcPatternGet(FcPattern_val(pat), String_val(prop), Int_val(id), &val);
switch(result) {
case FcResultMatch:
res = caml_from_fcvalue(val);
break;
case FcResultNoId:
caml_invalid_argument("pattern object id");
break;
default:
caml_invalid_argument("pattern object unsupported type");
break;
}
CAMLreturn(res);
}
开发者ID:rlepigre,项目名称:ocaml-fontconfig,代码行数:20,代码来源:pattern.c
示例10: c_arraydensematrix_geqrf
CAMLprim value c_arraydensematrix_geqrf(value va, value vbeta, value vv)
{
CAMLparam3(va, vbeta, vv);
struct caml_ba_array *ba = ARRAY2_DATA(va);
intnat m = ba->dim[1];
intnat n = ba->dim[0];
#if SUNDIALS_ML_SAFE == 1
if (m < n)
caml_invalid_argument("ArrayDenseMatrix.geqrf: fewer rows than columns.");
if (ARRAY1_LEN(vbeta) < n)
caml_invalid_argument("ArrayDenseMatrix.geqrf: beta is too small.");
if (ARRAY1_LEN(vv) < m)
caml_invalid_argument("ArrayDenseMatrix.geqrf: work is too small.");
#endif
denseGEQRF(ARRAY2_ACOLS(va), m, n, REAL_ARRAY(vbeta), REAL_ARRAY(vv));
CAMLreturn (Val_unit);
}
开发者ID:gasche,项目名称:sundialsml,代码行数:20,代码来源:dls_ml.c
示例11: stub_atomic_fetch_and_uint8
CAMLprim value stub_atomic_fetch_and_uint8(value buf, value idx, value val)
{
CAMLparam3(buf, idx, val);
uint8_t c_val = (uint8_t)Int_val(val);
uint8_t *ptr = Caml_ba_data_val(buf) + Int_val(idx);
if (Int_val(idx) >= Caml_ba_array_val(buf)->dim[0])
caml_invalid_argument("idx");
CAMLreturn(Val_int((uint8_t)__sync_fetch_and_and(ptr, c_val)));
}
开发者ID:GaloisInc,项目名称:mirage-platform,代码行数:11,代码来源:atomic_stubs.c
示例12: caml_make_vect
CAMLprim value caml_make_vect(value len, value init)
{
CAMLparam2 (len, init);
CAMLlocal1 (res);
mlsize_t size, wsize, i;
double d;
size = Long_val(len);
if (size == 0) {
res = Atom(0);
}
else if (Is_block(init)
&& Is_in_value_area(init)
&& Tag_val(init) == Double_tag) {
d = Double_val(init);
wsize = size * Double_wosize;
if (wsize > Max_wosize) caml_invalid_argument("Array.make");
res = caml_alloc(wsize, Double_array_tag);
for (i = 0; i < size; i++) {
Store_double_field(res, i, d);
}
} else {
if (size > Max_wosize) caml_invalid_argument("Array.make");
if (size < Max_young_wosize) {
res = caml_alloc_small(size, 0);
for (i = 0; i < size; i++) Field(res, i) = init;
}
else if (Is_block(init) && Is_young(init)) {
caml_minor_collection();
res = caml_alloc_shr(size, 0);
for (i = 0; i < size; i++) Field(res, i) = init;
res = caml_check_urgent_gc (res);
}
else {
res = caml_alloc_shr(size, 0);
for (i = 0; i < size; i++) caml_initialize(&Field(res, i), init);
res = caml_check_urgent_gc (res);
}
}
CAMLreturn (res);
}
开发者ID:puppeh,项目名称:ocaml-sh4,代码行数:41,代码来源:array.c
示例13: pcre_study_stub
/* Studies a regexp */
CAMLprim value pcre_study_stub(value v_rex)
{
/* If it has not yet been studied */
if (! (int) Field(v_rex, 3)) {
const char *error = NULL;
pcre_extra *extra = pcre_study((pcre *) Field(v_rex, 1), 0, &error);
if (error != NULL) caml_invalid_argument((char *) error);
Field(v_rex, 2) = (value) extra;
Field(v_rex, 3) = Val_int(1);
}
return v_rex;
}
开发者ID:DMClambo,项目名称:pfff,代码行数:13,代码来源:pcre_stubs.c
示例14: v2v_utils_drive_index
value
v2v_utils_drive_index (value strv)
{
CAMLparam1 (strv);
ssize_t r;
r = guestfs_int_drive_index (String_val (strv));
if (r == -1)
caml_invalid_argument ("drive_index: invalid parameter");
CAMLreturn (Val_int (r));
}
开发者ID:will-Do,项目名称:libguestfs,代码行数:12,代码来源:utils-c.c
示例15: v2v_xml_node_ptr_set_prop
value
v2v_xml_node_ptr_set_prop (value nodev, value namev, value valv)
{
CAMLparam3 (nodev, namev, valv);
xmlNodePtr node = (xmlNodePtr) nodev;
if (xmlSetProp (node, BAD_CAST String_val (namev), BAD_CAST String_val (valv))
== NULL)
caml_invalid_argument ("node_ptr_set_prop: failed to set property");
CAMLreturn (Val_unit);
}
开发者ID:kelledge,项目名称:libguestfs,代码行数:12,代码来源:xml-c.c
示例16: stub_mmap_write
CAMLprim value stub_mmap_write(value interface, value data,
value start, value len)
{
CAMLparam4(interface, data, start, len);
struct mmap_interface *intf;
int c_start;
int c_len;
c_start = Int_val(start);
c_len = Int_val(len);
intf = GET_C_STRUCT(interface);
if (c_start > intf->len)
caml_invalid_argument("start invalid");
if (c_start + c_len > intf->len)
caml_invalid_argument("len invalid");
memcpy(intf->addr + c_start, (char *) data, c_len);
CAMLreturn(Val_unit);
}
开发者ID:alexz,项目名称:xen-api-libs,代码行数:21,代码来源:mmap_stubs.c
示例17: lwt_unix_fsync_job
CAMLprim value lwt_unix_fsync_job(value val_fd)
{
struct filedescr *fd = (struct filedescr *)Data_custom_val(val_fd);
if (fd->kind != KIND_HANDLE) {
caml_invalid_argument("Lwt_unix.fsync");
} else {
LWT_UNIX_INIT_JOB(job, fsync, 0);
job->handle = fd->fd.handle;
job->error_code = 0;
return lwt_unix_alloc_job(&(job->job));
}
}
开发者ID:avsm,项目名称:lwt-OLD,代码行数:12,代码来源:lwt_unix_windows.c
示例18: pcre_study_stub
/* Studies a regexp */
CAMLprim value pcre_study_stub(value v_rex)
{
/* If it has not yet been studied */
if (! get_studied(v_rex)) {
const char *error = NULL;
pcre_extra *extra = pcre_study(get_rex(v_rex), 0, &error);
if (error != NULL) caml_invalid_argument((char *) error);
set_extra(v_rex, extra);
set_studied(v_rex, 1);
}
return v_rex;
}
开发者ID:mmottl,项目名称:pcre-ocaml,代码行数:13,代码来源:pcre_stubs.c
示例19: caml_ba_get_N
value caml_ba_get_N(value vb, value * vind, int nind)
{
struct caml_ba_array * b = Caml_ba_array_val(vb);
intnat index[CAML_BA_MAX_NUM_DIMS];
int i;
intnat offset;
/* Check number of indices = number of dimensions of array
(maybe not necessary if ML typing guarantees this) */
if (nind != b->num_dims)
caml_invalid_argument("Bigarray.get: wrong number of indices");
/* Compute offset and check bounds */
for (i = 0; i < b->num_dims; i++) index[i] = Long_val(vind[i]);
offset = caml_ba_offset(b, index);
/* Perform read */
switch ((b->flags) & CAML_BA_KIND_MASK) {
default:
Assert(0);
#ifdef _KERNEL
#else
case CAML_BA_FLOAT32:
return caml_copy_double(((float *) b->data)[offset]);
case CAML_BA_FLOAT64:
return caml_copy_double(((double *) b->data)[offset]);
#endif
case CAML_BA_SINT8:
return Val_int(((int8 *) b->data)[offset]);
case CAML_BA_UINT8:
return Val_int(((uint8 *) b->data)[offset]);
case CAML_BA_SINT16:
return Val_int(((int16 *) b->data)[offset]);
case CAML_BA_UINT16:
return Val_int(((uint16 *) b->data)[offset]);
case CAML_BA_INT32:
return caml_copy_int32(((int32 *) b->data)[offset]);
case CAML_BA_INT64:
return caml_copy_int64(((int64 *) b->data)[offset]);
case CAML_BA_NATIVE_INT:
return caml_copy_nativeint(((intnat *) b->data)[offset]);
case CAML_BA_CAML_INT:
return Val_long(((intnat *) b->data)[offset]);
#ifdef _KERNEL
#else
case CAML_BA_COMPLEX32:
{ float * p = ((float *) b->data) + offset * 2;
return copy_two_doubles(p[0], p[1]); }
case CAML_BA_COMPLEX64:
{ double * p = ((double *) b->data) + offset * 2;
return copy_two_doubles(p[0], p[1]); }
#endif
}
}
开发者ID:avsm,项目名称:mirage-kfreebsd,代码行数:52,代码来源:bigarray_stubs.c
示例20: caml_get_major_bucket
CAMLprim value caml_get_major_bucket (value v)
{
long i = Long_val (v);
if (i < 0) caml_invalid_argument ("Gc.get_bucket");
if (i < caml_major_window){
i += caml_major_ring_index;
if (i >= caml_major_window) i -= caml_major_window;
CAMLassert (0 <= i && i < caml_major_window);
return Val_long ((long) (caml_major_ring[i] * 1e6));
}else{
return Val_long (0);
}
}
开发者ID:vouillon,项目名称:ocaml,代码行数:13,代码来源:gc_ctrl.c
注:本文中的caml_invalid_argument函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论