summaryrefslogtreecommitdiff
path: root/rsg_generator.c
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2011-04-29 16:23:40 -0700
committerJason Sams <rjsams@android.com>2011-04-29 16:23:40 -0700
commit6e58aef90ec70adf4e7d6d18b869aed143a2ec02 (patch)
treee174f1ced7089f615d15f0ad7b8f594c4d68451a /rsg_generator.c
parent343cd8a9895dead2438770e6ac1fe810b2cd5b04 (diff)
downloadrs-6e58aef90ec70adf4e7d6d18b869aed143a2ec02.tar.gz
Fix bug 4355588
With auto inbanding the fifo didn't reserve the correct size. Caused failure on fifo wrap. Change-Id: Ie78e7bef5286f68c6239f79ee2f284fd99bdacc3
Diffstat (limited to 'rsg_generator.c')
-rw-r--r--rsg_generator.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/rsg_generator.c b/rsg_generator.c
index ed20fef1..239795d5 100644
--- a/rsg_generator.c
+++ b/rsg_generator.c
@@ -240,9 +240,11 @@ void printApiCpp(FILE *f) {
}
//fprintf(f, " LOGE(\"add command %s\\n\");\n", api->name);
- 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);
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, " 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);
}
for (ct2=0; ct2 < api->paramCount; ct2++) {