Skip to content

Commit 7de1d94

Browse files
committed
Better ownership and optionals
1 parent 9589b0b commit 7de1d94

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

ydb/library/yql/udfs/common/roaring/roaring.cpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -163,10 +163,11 @@ namespace {
163163

164164
class TList: public TBoxedValue {
165165
public:
166-
TList(TRoaringWrapper* RoaringWrapper)
167-
: RoaringWrapper_(RoaringWrapper)
166+
TList(TUnboxedValue UnboxedValue)
167+
: UnboxedValue_(UnboxedValue)
168168
{
169-
Length_ = roaring_bitmap_get_cardinality(RoaringWrapper_->Roaring);
169+
auto wrapper = static_cast<TRoaringWrapper*>(UnboxedValue_.AsBoxed().Get());
170+
Length_ = roaring_bitmap_get_cardinality(wrapper->Roaring);
170171
}
171172

172173
bool HasFastListLength() const override {
@@ -182,20 +183,19 @@ namespace {
182183
};
183184

184185
TUnboxedValue GetListIterator() const override {
185-
return TUnboxedValuePod(new TIterator(RoaringWrapper_->Roaring));
186+
auto wrapper = static_cast<TRoaringWrapper*>(UnboxedValue_.AsBoxed().Get());
187+
return TUnboxedValuePod(new TIterator(wrapper->Roaring));
186188
};
187189

188190
private:
189-
TRoaringWrapper* RoaringWrapper_;
191+
TUnboxedValue UnboxedValue_;
190192
ui64 Length_;
191193
};
192194

193195
TUnboxedValue Run(const IValueBuilder* valueBuilder,
194196
const TUnboxedValuePod* args) const override {
195197
Y_UNUSED(valueBuilder);
196-
auto bitmapWrapper = static_cast<TRoaringWrapper*>(args[0].AsBoxed().Get());
197-
198-
return TUnboxedValuePod(new TList(bitmapWrapper));
198+
return TUnboxedValuePod(new TList(args[0]));
199199
}
200200
};
201201

@@ -272,7 +272,7 @@ namespace {
272272

273273
sink.Add(TRoaringCardinality::Name());
274274

275-
sink.Add(TRoaringUint32List::Name())->SetTypeAwareness();
275+
sink.Add(TRoaringUint32List::Name());
276276

277277
sink.Add(TRoaringOrWithBinary::Name());
278278
sink.Add(TRoaringOr::Name());
@@ -294,7 +294,7 @@ namespace {
294294
auto typesOnly = (flags & TFlags::TypesOnly);
295295

296296
if (TRoaringDeserialize::Name() == name) {
297-
builder.Returns<TOptional<TResource<RoaringResourceName>>>().Args()->Add<TAutoMap<char*>>();
297+
builder.Returns<TResource<RoaringResourceName>>().Args()->Add<TAutoMap<char*>>();
298298

299299
if (!typesOnly) {
300300
builder.Implementation(new TRoaringDeserialize());
@@ -316,15 +316,15 @@ namespace {
316316
builder.Implementation(new TRoaringCardinality());
317317
}
318318
} else if (TRoaringUint32List::Name() == name) {
319-
builder.Returns<TOptional<TListType<ui32>>>()
319+
builder.Returns<TListType<ui32>>()
320320
.Args()
321321
->Add<TAutoMap<TResource<RoaringResourceName>>>();
322322

323323
if (!typesOnly) {
324324
builder.Implementation(new TRoaringUint32List());
325325
}
326326
} else if (TRoaringOrWithBinary::Name() == name) {
327-
builder.Returns<TOptional<TResource<RoaringResourceName>>>()
327+
builder.Returns<TResource<RoaringResourceName>>()
328328
.Args()
329329
->Add<TAutoMap<TResource<RoaringResourceName>>>()
330330
.Add<TAutoMap<char*>>();
@@ -333,7 +333,7 @@ namespace {
333333
builder.Implementation(new TRoaringOrWithBinary());
334334
}
335335
} else if (TRoaringOr::Name() == name) {
336-
builder.Returns<TOptional<TResource<RoaringResourceName>>>()
336+
builder.Returns<TResource<RoaringResourceName>>()
337337
.Args()
338338
->Add<TAutoMap<TResource<RoaringResourceName>>>()
339339
.Add<TAutoMap<TResource<RoaringResourceName>>>();
@@ -342,7 +342,7 @@ namespace {
342342
builder.Implementation(new TRoaringOr());
343343
}
344344
} else if (TRoaringAndWithBinary::Name() == name) {
345-
builder.Returns<TOptional<TResource<RoaringResourceName>>>()
345+
builder.Returns<TResource<RoaringResourceName>>()
346346
.Args()
347347
->Add<TAutoMap<TResource<RoaringResourceName>>>()
348348
.Add<TAutoMap<char*>>();
@@ -351,7 +351,7 @@ namespace {
351351
builder.Implementation(new TRoaringAndWithBinary());
352352
}
353353
} else if (TRoaringAnd::Name() == name) {
354-
builder.Returns<TOptional<TResource<RoaringResourceName>>>()
354+
builder.Returns<TResource<RoaringResourceName>>()
355355
.Args()
356356
->Add<TAutoMap<TResource<RoaringResourceName>>>()
357357
.Add<TAutoMap<TResource<RoaringResourceName>>>();

0 commit comments

Comments
 (0)