
Anatoly
12.07.2018
11:40:46

Pavel
12.07.2018
11:47:47
AddressSanitizer: heap-buffer-overflow у этого djbsort. у когонибудь получилось завести?

Alexander
12.07.2018
11:49:20

Pavel
12.07.2018
12:50:46
хм, зараза. если накидать простенькую программу то всё работает. неработает только когда я её в своего монстра встраиваю

Google

Alexander
12.07.2018
12:51:38

Pavel
12.07.2018
12:51:46
конечно же нет
но до этого всё работало

Alexander
12.07.2018
12:51:52
или там какие-то странные вещи выплывают?

Pavel
12.07.2018
12:52:19
санитизер говорит что djbsort срет за кучу

Alexander
12.07.2018
12:52:38
а продебажить можешь?

Pavel
12.07.2018
12:52:53
да там какойто ад

Alexander
12.07.2018
12:53:05
я исходники не смотрел ?
ну ты можешь же поставить точку останову на место краша, а потом по колстэку посмотреть, что да как

Pavel
12.07.2018
12:54:10
"пью, не помогает"
https://github.com/yekm/bench/blob/master/tasks/simple_sorting/djbsort/avx2/sort.c#L348
вот тут. transpose он вызывает из самого конца int32_sort
попробуй пойми чо там происходит

Google

Aidar
12.07.2018
13:03:11
Будет ли ослабление свитча по тем же правилам что и Кастомные типы в шаблонах(неявный оператор<=>)?

Alexander
12.07.2018
13:05:18

Pavel
12.07.2018
13:06:02
вобщем если там оставить временный массив на стеке и не давать ему слишком большого буфера то всё работает
а если делать calloc/free то валится
подозрительно
в 2.3 раза быстрее pdqsort при 100к элементов
тю. я в calloc не умею.
развел тут шухер

Антон
12.07.2018
13:20:32

Maksym
12.07.2018
13:20:48

Антон
12.07.2018
13:21:59
типа pro.wxwidgets

Maksym
12.07.2018
13:22:13
сомневаюсь

Anton
12.07.2018
13:23:20
я думаю можно и сюда спросить

Антон
12.07.2018
13:23:57
выше спрашивал
при дальнейшем ковырянии выяснилось, что почему то вызывается метод родительского класса O_o
хотя метод в родительском классе - virtual
магия

Mikhail Voronov
12.07.2018
13:48:09
может где-нибудь срезка происходит?

Антон
12.07.2018
13:48:38
передача идёт по ссылке

Constantine
12.07.2018
13:48:56

Google

Антон
12.07.2018
13:49:41
моего или родительского?

Mikhail Voronov
12.07.2018
13:49:46
там TransferFromWindow и Clone точно в единственной перегрузке у родителя и нужными сигнатурами? У Вас просто override у них нет

Антон
12.07.2018
13:50:08
я ставил override
не ругается
https://github.com/wxWidgets/wxWidgets/blob/master/include/wx/validate.h
вот код родительского класса
https://gist.github.com/usernameak/4156a0fa891cfc6c6570304012550e60
а вот моего

Mikhail Voronov
12.07.2018
13:52:11
а весь проект можно посмотреть?

Антон
12.07.2018
13:53:33
ща пушну

Ilia
12.07.2018
13:53:59

Constantine
12.07.2018
13:54:04
а кто их вообще должен вызывать?

Антон
12.07.2018
13:54:21

Constantine
12.07.2018
13:54:45

Антон
12.07.2018
13:55:17
https://github.com/wxWidgets/wxWidgets/blob/950b1a9d517e16c443fec7005888582f3354e25e/src/common/wincmn.cpp#L2114
вызывается тут, если точнее

Ilia
12.07.2018
13:55:27
Какой метод?

Антон
12.07.2018
13:55:47
у меня?

Constantine
12.07.2018
13:55:58
потрачено
отлаживали? динамические типы смотрели? там потом окажется, что валидатор не установлен окну или что-нибудь такое

Ilia
12.07.2018
13:56:55
bool wxWindowBase::TransferDataToWindow() -- там сложно сс игнатурой ошибиться...

Антон
12.07.2018
13:56:58
окно вызывает мой Clone() а дальше глохнет

Google

Антон
12.07.2018
13:57:14
я ж специальне дебаг принты воткнул

Ilia
12.07.2018
13:57:23
Ну отладчик бери и по шагам, по шагам...

Антон
12.07.2018
13:57:48
ай это ж еще сырцы вх качать

Ilia
12.07.2018
13:59:55
virtual bool OnDo(wxValidator* validator) wxOVERRIDE
{
if ( !validator->TransferToWindow() )
{
wxLogWarning(_("Could not transfer data to window"));
#if wxUSE_LOG
wxLog::FlushActive();
#endif // wxUSE_LOG
return false;
}
return true;
}это ооп головного мозга, ящетаю...
Лямбды для кого придумали?

Constantine
12.07.2018
14:00:23

Антон
12.07.2018
14:00:26

Ilia
12.07.2018
14:00:45
А зачем?
Надо так?
Не ну... если надо...

Антон
12.07.2018
14:01:47
это уже не цпп
это уже цп какое то

Ilia
12.07.2018
14:03:40

Антон
12.07.2018
14:03:54
нет.
вместо WDEdCBBitValidator::Transfer{To/From}Window() вызывается метод предка этого класса

Mikhail Voronov
12.07.2018
14:05:02
а как ты это проверил?

Антон
12.07.2018
14:05:07
gdb

Серж
12.07.2018
14:05:07
кастишь небось, через сишные касты, негодник

Constantine
12.07.2018
14:05:29

Антон
12.07.2018
14:05:33
да нет, implicit cast

Google

Ilia
12.07.2018
14:06:00
Я запутался

Constantine
12.07.2018
14:06:00

Антон
12.07.2018
14:06:15
https://gist.github.com/usernameak/b275e38ada65adb3f0544f210bd8e663
вот как я его использую

Constantine
12.07.2018
14:07:09
Я запутался

Ilia
12.07.2018
14:07:11
а сигнатуру конструктора wxCheckBox дай

Constantine
12.07.2018
14:08:15
const wxValidator &validator=wxDefaultValidator

Ilia
12.07.2018
14:08:19
Если по значению, тогда хана

Антон
12.07.2018
14:08:31
http://docs.wxwidgets.org/3.1/classwx_check_box.html
в доке есть
по ссылке