Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 {% from 'fields/field.tmpl' import encode %} | |
| 2 {% from 'macros.tmpl' import print_if %} | |
| 3 {% macro def_group(group): -%} | |
|
meade_UTC10
2017/04/06 03:29:57
I think this can be named more clearly, group_clas
shend
2017/04/20 03:22:34
Changed to define_field_group_class.
| |
| 4 class {{group.type_name}} : public RefCounted<{{group.type_name}}> { | |
| 5 public: | |
| 6 static PassRefPtr<{{group.type_name}}> create() { | |
| 7 return adoptRef(new {{group.type_name}}); | |
| 8 } | |
| 9 PassRefPtr<{{group.type_name}}> copy() const { | |
| 10 return adoptRef(new {{group.type_name}}(*this)); | |
| 11 } | |
| 12 | |
| 13 bool operator==(const {{group.type_name}}& o) const { | |
|
meade_UTC10
2017/04/06 03:29:57
Not sure if the other generators you've written mi
shend
2017/04/06 04:39:40
Ah ok, I was merely following the handwritten code
meade_UTC10
2017/04/20 03:08:40
Ah yeah I think some of that is old and predates t
shend
2017/04/20 03:22:34
Changed to 'other'.
| |
| 14 return ( | |
| 15 {% for field in group.fields %} | |
| 16 {{field.name}} == o.{{field.name}}{{print_if(not loop.last, ' &&')}} | |
| 17 {% endfor %} | |
| 18 ); | |
| 19 } | |
| 20 bool operator!=(const {{group.type_name}}& o) const { return !(*this == o); } | |
| 21 | |
| 22 {% for field in group.fields %} | |
| 23 {% if field.is_bit_field %} | |
|
meade_UTC10
2017/04/06 03:29:58
How come some of the if field.is_bit_field is abst
shend
2017/04/20 03:22:34
Done.
| |
| 24 unsigned {{field.name}} : {{field.size}}; // {{field.type_name}} | |
| 25 {% else %} | |
| 26 {{field.type_name}} {{field.name}}; | |
| 27 {% endif %} | |
| 28 {% endfor %} | |
| 29 | |
| 30 private: | |
| 31 {{group.type_name}}() : | |
| 32 {% for field in group.fields %} | |
| 33 {{field.name}}({{encode(field, field.default_value)}}){{print_if(not loop. last, ',')}} | |
| 34 {% endfor %} | |
| 35 {} | |
| 36 | |
| 37 ALWAYS_INLINE {{group.type_name}}(const {{group.type_name}}& o) : | |
| 38 RefCounted<{{group.type_name}}>(), | |
| 39 {% for field in group.fields %} | |
| 40 {{field.name}}(o.{{field.name}}){{print_if(not loop.last, ',')}} | |
| 41 {% endfor %} | |
| 42 {} | |
| 43 }; | |
| 44 {%- endmacro %} | |
| OLD | NEW |