Dyn

 view release on metacpan or  search on metacpan

lib/Dyn/Call/Aggregate.xsh  view on Meta::CPAN

}
// clang-format off
OUTPUT:
    RETVAL

void
fields(DCaggr * thing)
PREINIT:
    size_t i;
    U8 gimme = GIMME_V;
PPCODE:
    // clang-format on
    if (gimme == G_ARRAY) {
    EXTEND(SP, thing->n_fields);
    struct DCfield_ *addr;
    for (i = 0; i < thing->n_fields; ++i) {
        SV *field = sv_newmortal();
        addr = &thing->fields[i];
        sv_setref_pv(field, "Dyn::Call::Field", (void *)addr);
        mPUSHs(newSVsv(field));
    }

lib/Dyn/Call/Field.xsh  view on Meta::CPAN

#// clang-format off

MODULE = Dyn::Call   PACKAGE = Dyn::Call::Field

void
new(char * package, HV * args = newHV_mortal())
PPCODE:
    // clang-format on
    DCfield *RETVAL;
Newx(RETVAL, 1, DCfield);
SV **val_ref = hv_fetchs(args, "offset", 0);
if (val_ref != NULL) RETVAL->offset = (DCsize)SvIV(*val_ref);
val_ref = hv_fetchs(args, "size", 0);
if (val_ref != NULL) RETVAL->size = (DCsize)SvIV(*val_ref);
val_ref = hv_fetchs(args, "alignment", 0);
if (val_ref != NULL) RETVAL->alignment = (DCsize)SvIV(*val_ref);
val_ref = hv_fetchs(args, "array_len", 0);

lib/Dyn/Call/Pointer.xsh  view on Meta::CPAN


DCpointer
realloc(IN_OUT DCpointer ptr, size_t size)
CODE:
    ptr = saferealloc(ptr, size);
OUTPUT:
    RETVAL

void
free(DCpointer ptr)
PPCODE:
// clang-format on
{
    if (ptr != NULL) dcFreeMem(ptr);
    ptr = NULL;
    sv_set_undef(ST(0));
} // Let Dyn::Call::Pointer::DESTROY take care of the rest
  // clang-format off

DCpointer
memchr(DCpointer ptr, char ch, size_t count)

lib/Dyn/Call/Pointer.xsh  view on Meta::CPAN

OUTPUT:
    RETVAL

DCpointer
memset(DCpointer dest, char ch, size_t count)

void
memcpy(dest, src, size_t nitems)
INIT:
    DCpointer dest, src;
PPCODE:
// clang-format on
{
    if (sv_derived_from(ST(0), "Dyn::Call::Pointer")) {
        IV tmp = SvIV((SV *)SvRV(ST(0)));
        dest = INT2PTR(DCpointer, tmp);
    }
    else if (SvIOK(ST(0))) {
        IV tmp = SvIV((SV *)(ST(0)));
        dest = INT2PTR(DCpointer, tmp);
    }

lib/Dyn/Call/Pointer.xsh  view on Meta::CPAN

    else
        croak("dest is not of type Dyn::Call::Pointer");
    CopyD(src, dest, nitems, char);
}
// clang-format off

void
memmove(dest, src, size_t nitems)
INIT:
    DCpointer dest, src;
PPCODE:
// clang-format on
{
    if (sv_derived_from(ST(0), "Dyn::Call::Pointer")) {
        IV tmp = SvIV((SV *)SvRV(ST(0)));
        dest = INT2PTR(DCpointer, tmp);
    }
    else if (SvIOK(ST(0))) {
        IV tmp = SvIV((SV *)(ST(0)));
        dest = INT2PTR(DCpointer, tmp);
    }



( run in 0.609 second using v1.01-cache-2.11-cpan-5511b514fd6 )