Exemple #1
0
static zval *ds_pair_read_property(zval *object, zval *offset, int type, void **cache_slot, zval *rv)
{
    zval *property = get_property(Z_DS_PAIR_P(object), offset);

    if ( ! property) {
        OFFSET_OUT_OF_BOUNDS();
        return &EG(uninitialized_zval);
    }

    return property;
}
Exemple #2
0
static zval *pair_read_property(zval *object, zval *offset, int type, void **cache_slot, zval *rv)
{
    Pair *pair = Z_PAIR_P(object);
    zval *value = get_value(pair, offset);

    if ( ! value) {
        OFFSET_OUT_OF_BOUNDS();
        return &EG(uninitialized_zval);
    }

    return value;
}
Exemple #3
0
static void ds_pair_write_property(zval *object, zval *offset, zval *value, void **cache_slot)
{
    zval *property = get_property(Z_DS_PAIR_P(object), offset);

    if (property) {
        zval_ptr_dtor(property);
        ZVAL_COPY(property, value);
        return;
    }

    OFFSET_OUT_OF_BOUNDS();
}
Exemple #4
0
static zval *pair_read_dimension(zval *object, zval *offset, int type, zval *return_value)
{
    Pair *pair = Z_PAIR_P(object);
    zval *value = get_value(pair, offset);

    if ( ! value) {
        OFFSET_OUT_OF_BOUNDS();
        return &EG(uninitialized_zval);
    }

    if (type != BP_VAR_R) {
        ZVAL_MAKE_REF(value);
    }

    return value;
}