[05:01:19] <Kemet> version
[05:01:21] <Жаба> Kemet,  you have Psi+ 0.16.469 (2015-08-13) on Windows Vista
[07:40:16] <geniepro> https://scontent-amt2-1.xx.fbcdn.net/v/t1.0-9/13521995_257431284624258_4760934026986620293_n.jpg?oh=32653ef2a45f511e767b87f7759c03fd&oe=580820F4
[18:01:06] <Kemet> SOS!
[18:16:03] <valexey> WAT?
[18:43:27] <Kemet> valexey: что за хрень с dst
void SkMatrix::ComputeInv(SkScalar dst[9], const SkScalar src[9], double invDet, bool isPersp) {
   SkASSERT(src != dst);
   SkASSERT(src && dst);

   if (isPersp) {
       dst[kMScaleX] = scross_dscale(src[kMScaleY], src[kMPersp2], src[kMTransY], src[kMPersp1], invDet);

[18:43:45] <Kemet> b vyjuj cnhjr d njv ;t le[t
[18:43:58] <Kemet> и много строк в том же духе
[18:44:17] <valexey> dst - destination
[18:44:32] <Kemet> valexey: я понял, но оно ж  по значению
[18:45:26] <valexey> You have to check SkScalar definition
[18:45:32] <valexey> May be it will be ok.
[18:45:43] <Kemet> типа реала
[18:45:44] <valexey> Because of move semantics.
[18:45:59] <valexey> ok
[18:46:54] <valexey> So, dst[9] is an array. As I remember it is just pointer to memory area. There is no deep copy semantics for array in C and C++
[18:46:57] <valexey> IMHO
[18:47:03] <valexey> you can check it
[18:50:47] <Kemet> typedef float SkScalar;
[18:51:23] <valexey> The same:
void SkMatrix::ComputeInv(SkScalar* dst, const SkScalar* src, double invDet, bool isPersp) { ...
[18:52:21] <Kemet> мерзкие плюсы
[18:53:34] <valexey> $ cat arr.cpp
int foo(float b[5]) {
return b[9];
}

int main() {
float a[10];
float* c;
foo(a);
foo(c);
return 0;
}

[18:53:48] <valexey> it compiler ok. even with Wall option :-)
[18:54:01] <valexey> *it compiles
[18:55:55] <Kemet> но таки да, сейчас вспомнил Что x[] это указатель да, хорошо что я эти плюсы редко смотрю, с другой стороны, смотрел бы часше, - помнил бы постоянно
[18:57:53] <Kemet> а я уж было подумал, неужто и тут баг
[18:58:45] <valexey> :-)
[18:58:47] <Kemet> тут на днях за порт AGG снова сел и таки там баг в инверсии матрицы
[18:59:36] <Kemet> смотрю в Skia инверсию, и думаю, что за засада такаяя с этой инфверсией везде, кроме оберона ))
[19:00:28] <Kemet> ну вернее не спец инверсию смотрел, просто дошел до неё
[20:32:44] <vlad2> Kemet: массивы всегда по ссылке
[20:33:02] <vlad2> Если нужно по значение - оборачивает массив в структуру.
[20:33:35] <vlad2> Хотя смысла массивы по значение передавать не вижу...
[20:36:57] <vlad2> Смсл в "9" тоже сугубо декларативный (чтоб ты знал). Т.е. компилятор тебе не будет ругаться, если ты передаш массив [1].
[20:37:25] <vlad2> При этом запись вгоняет в ступор - никто так не пишет.
[20:38:46] <vlad2> Короче, говнокод. По-нормальному там должна быть структура с нормальным именем. И запись будет нормальная и компилятор будет ругаться как надо, если че не так.