Changeset 2988aec7 in mainline for uspace/app/bithenge/transform.c


Ignore:
Timestamp:
2012-08-14T03:17:17Z (12 years ago)
Author:
Sean Bartell <wingedtachikoma@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
71b0d4d4
Parents:
1b6b76d
Message:

Bithenge: read FAT files/subdirs; self-recursion and more operators

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/bithenge/transform.c

    r1b6b76d r2988aec7  
    477477};
    478478
     479/** Set the subtransform of a barrier transform. This must be done before the
     480 * barrier transform is used. Takes a reference to @a transform.
     481 * @param base The barrier transform.
     482 * @param transform The subtransform to use for all operations.
     483 * @return EOK on success or an error code from errno.h. */
     484int bithenge_barrier_transform_set_subtransform(bithenge_transform_t *base,
     485    bithenge_transform_t *transform)
     486{
     487        assert(transform);
     488        assert(bithenge_transform_num_params(transform) == 0);
     489
     490        barrier_transform_t *self = transform_as_barrier(base);
     491        assert(!self->transform);
     492        self->transform = transform;
     493        return EOK;
     494}
     495
    479496/** Create a wrapper transform that creates a new scope. This ensures nothing
    480497 * from the outer scope is passed in, other than parameters. The wrapper may
    481  * have a different value for num_params. Takes a reference to @a transform,
    482  * which it will use for all operations.
     498 * have a different value for num_params. The subtransform must be set with @a
     499 * bithenge_barrier_transform_set_subtransform before the result is used.
    483500 * @param[out] out Holds the created transform.
    484  * @param transform The transform to wrap.
    485501 * @param num_params The number of parameters to require, which may be 0.
    486502 * @return EOK on success or an error code from errno.h. */
    487 int bithenge_new_barrier_transform(bithenge_transform_t **out,
    488     bithenge_transform_t *transform, int num_params)
    489 {
    490         assert(transform);
    491         assert(bithenge_transform_num_params(transform) == 0);
    492 
     503int bithenge_new_barrier_transform(bithenge_transform_t **out, int num_params)
     504{
    493505        int rc;
    494506        barrier_transform_t *self = malloc(sizeof(*self));
     
    501513        if (rc != EOK)
    502514                goto error;
    503         self->transform = transform;
     515        self->transform = NULL;
    504516        *out = barrier_as_transform(self);
    505517        return EOK;
    506518error:
    507         bithenge_transform_dec_ref(transform);
    508519        free(self);
    509520        return rc;
Note: See TracChangeset for help on using the changeset viewer.