Patrick Williams | b48b7b4 | 2016-08-17 15:04:38 -0500 | [diff] [blame^] | 1 | Port from Fedora20 |
| 2 | |
| 3 | | commit aca6c7f910ffe9930b5789969f0adfadd668bb46 |
| 4 | | Author: Michal Minar <miminar@redhat.com> |
| 5 | | Date: Fri Jun 20 10:50:45 2014 +0200 |
| 6 | | |
| 7 | | Fix returning instance as an output argument from method |
| 8 | | |
| 9 | | Submitted By: Radek Novacek <rnovacek@redhat.com> |
| 10 | |
| 11 | Upstream-Status: Pending |
| 12 | Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com> |
| 13 | |
| 14 | diff --git a/src/program/main.cpp b/src/program/main.cpp |
| 15 | index 885dc12..9e7108a 100644 |
| 16 | --- a/src/program/main.cpp |
| 17 | +++ b/src/program/main.cpp |
| 18 | @@ -506,7 +506,11 @@ static void gen_feature_decls( |
| 19 | |
| 20 | // Add sig entry [type][length][name][zero-terminator] |
| 21 | |
| 22 | - KTag tag = _ktag(pd->data_type, pd->array_index, key, false, false); |
| 23 | + KTag tag; |
| 24 | + if (pd->qualifiers->has_key("EmbeddedInstance")) |
| 25 | + tag = _ktag(TOK_INSTANCE, pd->array_index, key, false, false); |
| 26 | + else |
| 27 | + tag = _ktag(pd->data_type, pd->array_index, key, false, false); |
| 28 | pack_tag(sig, tag); |
| 29 | pack_name(sig, pd->name); |
| 30 | count++; |
| 31 | @@ -640,6 +644,7 @@ static void gen_param(FILE* os, MOF_Parameter* p, vector<unsigned char>& sig) |
| 32 | const char* ktn = _ktype_name(p->data_type); |
| 33 | |
| 34 | if (p->qualifiers->has_key("EmbeddedInstance")) { |
| 35 | + tag = _ktag(TOK_INSTANCE, p->array_index, false, in, out); |
| 36 | if (p->array_index) |
| 37 | put(os, " KInstanceA $0;\n", p->name, NULL); |
| 38 | else |