aboutsummaryrefslogtreecommitdiffstats
path: root/eval
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-03-11 14:08:30 +0000
committerArne Juul <arnej@verizonmedia.com>2021-03-11 14:08:30 +0000
commit78a0555c821f49c5a8fa0d1bce45b6483869f342 (patch)
tree4345d9fc8d9b2caa8fa3b45c6a1697d2f25d23f2 /eval
parent5e818f9b13585af3dd4e4e3572dc9e386b74ad67 (diff)
typify on input cell meta
Diffstat (limited to 'eval')
-rw-r--r--eval/src/vespa/eval/instruction/mixed_map_function.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/eval/src/vespa/eval/instruction/mixed_map_function.cpp b/eval/src/vespa/eval/instruction/mixed_map_function.cpp
index 2856539a703..22dfb15be20 100644
--- a/eval/src/vespa/eval/instruction/mixed_map_function.cpp
+++ b/eval/src/vespa/eval/instruction/mixed_map_function.cpp
@@ -28,9 +28,11 @@ void my_inplace_map_op(State &state, uint64_t param) {
//-----------------------------------------------------------------------------
struct MyGetFun {
- template <typename CM, typename Fun> static auto invoke() {
- using CT = CellValueType<CM::value.cell_type>;
- return my_inplace_map_op<CT, Fun>;
+ template <typename ICM, typename Fun> static auto invoke() {
+ using ICT = CellValueType<ICM::value.cell_type>;
+ using OCT = CellValueType<ICM::value.map().cell_type>;
+ assert((std::is_same_v<ICT,OCT>));
+ return my_inplace_map_op<OCT, Fun>;
}
};
@@ -52,8 +54,8 @@ MixedMapFunction::~MixedMapFunction() = default;
Instruction
MixedMapFunction::compile_self(const ValueBuilderFactory &, Stash &) const
{
- auto op = typify_invoke<2,MyTypify,MyGetFun>(result_type().cell_meta().limit().not_scalar(),
- function());
+ auto input_cell_meta = child().result_type().cell_meta().limit().not_scalar();
+ auto op = typify_invoke<2,MyTypify,MyGetFun>(input_cell_meta, function());
static_assert(sizeof(uint64_t) == sizeof(function()));
return Instruction(op, (uint64_t)(function()));
}