Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 629b5651 authored by Jason Sams's avatar Jason Sams Committed by Android (Google) Code Review
Browse files

Merge "Try fixing auto data inlining again."

parents ceae02e2 b96e9517
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -157,8 +157,7 @@ void printPlaybackFuncs(FILE *f, const char *prefix) {
static int hasInlineDataPointers(const ApiEntry * api) {
    int ret = 0;
    int ct;
    // Temporarly disable inbanding while we sort though the bugs.
    if (1|| api->sync || api->ret.typeName[0]) {
    if (api->sync || api->ret.typeName[0]) {
        return 0;
    }
    for (ct=0; ct < api->paramCount; ct++) {
@@ -229,7 +228,7 @@ void printApiCpp(FILE *f) {
            fprintf(f, ");\n");
        } else {
            fprintf(f, "    ThreadIO *io = &((Context *)rsc)->mIO;\n");
            fprintf(f, "    uint32_t size = sizeof(RS_CMD_%s);\n", api->name);
            fprintf(f, "    const uint32_t size = sizeof(RS_CMD_%s);\n", api->name);
            if (hasInlineDataPointers(api)) {
                fprintf(f, "    uint32_t dataSize = 0;\n");
                for (ct2=0; ct2 < api->paramCount; ct2++) {
@@ -242,10 +241,15 @@ void printApiCpp(FILE *f) {

            //fprintf(f, "    LOGE(\"add command %s\\n\");\n", api->name);
            if (hasInlineDataPointers(api)) {
                fprintf(f, "    RS_CMD_%s *cmd = static_cast<RS_CMD_%s *>(io->mToCore.reserve(dataSize + sizeof(RS_CMD_%s)));\n", api->name, api->name, api->name);
                fprintf(f, "    RS_CMD_%s *cmd = NULL;\n", api->name);
                fprintf(f, "    if (dataSize < 1024) {;\n");
                fprintf(f, "        cmd = static_cast<RS_CMD_%s *>(io->mToCore.reserve(dataSize + size));\n", api->name);
                fprintf(f, "    } else {\n");
                fprintf(f, "        cmd = static_cast<RS_CMD_%s *>(io->mToCore.reserve(size));\n", api->name);
                fprintf(f, "    }\n");
                fprintf(f, "    uint8_t *payload = (uint8_t *)&cmd[1];\n");
            } else {
                fprintf(f, "    RS_CMD_%s *cmd = static_cast<RS_CMD_%s *>(io->mToCore.reserve(sizeof(RS_CMD_%s)));\n", api->name, api->name, api->name);
                fprintf(f, "    RS_CMD_%s *cmd = static_cast<RS_CMD_%s *>(io->mToCore.reserve(size));\n", api->name, api->name);
            }

            for (ct2=0; ct2 < api->paramCount; ct2++) {