static function rotate($a, $cmp, $from, $mid, $to) { $n = null; if ($from === $mid || $mid === $to) { return; } $n = haxe_ds_ArraySort::gcd($to - $from, $mid - $from); while ($n-- !== 0) { $val = $a[$from + $n]; $shift = $mid - $from; $p1 = $from + $n; $p2 = $from + $n + $shift; while ($p2 !== $from + $n) { $a[$p1] = $a[$p2]; $p1 = $p2; if ($to - $p2 > $shift) { $p2 += $shift; } else { $p2 = $from + ($shift - ($to - $p2)); } } $a[$p1] = $val; unset($val, $shift, $p2, $p1); } }
public function createInfo($forClass) { $info = new minject_InjectorInfo(null, new _hx_array(array())); $this->addClassToInfo($forClass, $info, new _hx_array(array())); haxe_ds_ArraySort::sort($info->fields, array(new _hx_lambda(array(&$forClass, &$info), "minject_Injector_0"), 'execute')); if ($info->ctor === null) { $info->ctor = new minject_point_ConstructorInjectionPoint(new _hx_array(array())); } return $info; }