Skip to content

Temporary serialization variables present even when not used #1

@senbrow

Description

@senbrow

Take the following struct:

struct Foo {
    uint16_t bar;
};

packingtape generates the following implementation output:

const size_t FOO_SERIALIZED_SIZE = 2;

// **** AUTOMATICALLY GENERATED, DO NOT EDIT ****
size_t serialize_Foo(const struct Foo *source, uint8_t *outputBuffer, size_t outputBufferLength) {
    uint32_t temporary32;
    uint16_t temporary16;

    if(!outputBuffer) {
        return -1;
    }else if(outputBufferLength < FOO_SERIALIZED_SIZE) {
        return -2;
    }

    temporary16 = htons(source->bar);
    memcpy(outputBuffer, &temporary16, sizeof(uint16_t));
    outputBuffer += sizeof(uint16_t);

    return FOO_SERIALIZED_SIZE;
}

// **** AUTOMATICALLY GENERATED, DO NOT EDIT ****
size_t deserialize_Foo(const uint8_t *data, size_t dataLength, struct Foo *output) {
    if(!data) {
        return -1;
    }else if(dataLength < FOO_SERIALIZED_SIZE) {
        return -2;
    }

    memcpy(&(output->bar), data, sizeof(uint16_t));
    output->bar = ntohs(output->bar);
    data += sizeof(uint16_t);

    return FOO_SERIALIZED_SIZE;
}

The temporary32 variable is present in the generated serialize_Foo function, even though it is never used. This will cause compiler warnings/errors.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions