blob: b54d091598146dc676cb97e1b7bbece489e0189b [file] [log] [blame]
Patrick Williamsb48b7b42016-08-17 15:04:38 -05001Port 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
11Upstream-Status: Pending
12Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
13
14diff --git a/src/program/main.cpp b/src/program/main.cpp
15index 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