aboutsummaryrefslogtreecommitdiffhomepage
path: root/tdtl/td
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2021-11-01 20:48:06 +0300
committerlevlam <levlam@telegram.org>2021-11-01 20:48:06 +0300
commit4533f79338ef53dd120a78af12ee01ab994a774b (patch)
tree61f78b83944a9e528659c94b21f7127e753f6626 /tdtl/td
parent0522ba178a3b0bef456ffc2d1549b810a0086513 (diff)
Don't generate MASK for parsed object/vector fields.
Diffstat (limited to 'tdtl/td')
-rw-r--r--tdtl/td/tl/tl_generate.cpp4
-rw-r--r--tdtl/td/tl/tl_writer.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/tdtl/td/tl/tl_generate.cpp b/tdtl/td/tl/tl_generate.cpp
index 1747bc5f0..6fe1cedae 100644
--- a/tdtl/td/tl/tl_generate.cpp
+++ b/tdtl/td/tl/tl_generate.cpp
@@ -248,7 +248,7 @@ static void write_function(tl_outputer &out, const tl_combinator *t, const std::
out.append(w.gen_class_begin(class_name, w.gen_base_function_class_name(), false));
int required_args = gen_field_definitions(out, t, class_name, w);
- out.append(w.gen_flags_definitions(t));
+ out.append(w.gen_flags_definitions(t, true));
std::vector<var_description> vars(t->var_count);
out.append(w.gen_function_vars(t, vars));
@@ -304,7 +304,6 @@ static void write_constructor(tl_outputer &out, const tl_combinator *t, const st
out.append(w.gen_class_begin(class_name, base_class, is_proxy));
int required_args = gen_field_definitions(out, t, class_name, w);
- out.append(w.gen_flags_definitions(t));
bool can_be_parsed = false;
bool is_can_be_parsed_inited = false;
@@ -334,6 +333,7 @@ static void write_constructor(tl_outputer &out, const tl_combinator *t, const st
can_be_stored = true;
}
+ out.append(w.gen_flags_definitions(t, can_be_stored));
if (w.is_default_constructor_generated(t, can_be_parsed, can_be_stored)) {
write_class_constructor(out, t, class_name, true, w);
}
diff --git a/tdtl/td/tl/tl_writer.h b/tdtl/td/tl/tl_writer.h
index 06dd9640f..f8724851f 100644
--- a/tdtl/td/tl/tl_writer.h
+++ b/tdtl/td/tl/tl_writer.h
@@ -96,7 +96,7 @@ class TL_writer {
virtual std::string gen_field_definition(const std::string &class_name, const std::string &type_name,
const std::string &field_name) const = 0;
- virtual std::string gen_flags_definitions(const tl_combinator *t) const {
+ virtual std::string gen_flags_definitions(const tl_combinator *t, bool can_be_stored) const {
return "";
}