ckotinko (ckotinko) wrote,
ckotinko
ckotinko

Categories:

Ебалайтунг

Портирую я в данный момент мегатетрис cuyo в веб, с помощью emscriptenа. Ох и наебался я с последним: например он грузит данные программы прямо в хип, и если хипа не хватает, он ничего не говорит а тупо портит этот хип. Если быть точным, то dynamicAllocate возвращает 0, который не проверяется и хип прямо с нуля и до конца засирается. А потом проверка на запись в нулевое слово всё рубит.

Так вот, беда в том, что cuyo написан сука на немецком языке С++. То есть там внутри вообще всё что можно обозвано немецкими скороговорками. И до кучи ему не нравится собственный конфиг. Надо разгадать, хули же ему надо вот в таком коде:
  set<set<Str> >::const_iterator i1 = versionen.begin(),
                                      i2,
                                      e  = versionen.end();
  for (; i1!=e; ++i1)
    for (i2 = i1, ++i2; i2!=e; ++i2) {
      set<Str> v = vereinigung(*i1,*i2);
      if (legal(v))
        if (versionen.find(v)==e) {
          throw Fehler(_("%s%s not uniquely defined"),
		       schluessel.data(), setToString(v).data());
        }
    }

...

set<Str> vereinigung(const set<Str> & s1,const set<Str> & s2) {
  set<Str> v = s1;
  set<Str>::const_iterator i = s2.begin(),
                                e = s2.end();
  for (; i!=e; ++i)
    v.insert(*i);
  return v;
}

Я сижу и охуеваю от того, что наворотил тевтонский программист. Что это блядь такое-то вообще?
Есть set setов строк. Он берет каждую пару setов строк, делает из них set с неповторяющимися строками, и ищет их в исходном setе. Ясен пень что этот код всегда будет кидать исключение, кроме случая когда там только один сет - тогда он сам себя будет находить и радоваться.

* * *

ох ты ж блядь оно ещё и не собирается из сорцов
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 2 comments