Как стать автором
Обновить

Комментарии 37

столкнулся с этой проблемой год назад, написал на stockoverflow, там разъяснили в чем суть… не знал, что баг ещё до сих пор жив.
Кстати на dev.opera.com еще 15 июля 2008 был создан топик, но реакция оперных сотрудников удивляет (Tuesday, 24. March 2009)
Почему 32766, а не 32767?
Я бы тоже хотел знать, почему. Будем ждать ответа в комментах.
Т.к. {0, 1, ..., 32766}=32767
Int начинается с нуля.
signed int 16 начинается с -32768.
А Ваше уравнение (0,1,… 32766=32767) я не понял…
Посыпаю голову пеплом, Вы правы.
Я имел в виду — количество элементов, но все перепутал.
НЛО прилетело и опубликовало эту надпись здесь
это наибольшее 16-битное число (32767) минус единица
видимо, значение было высчитано в той же Опере :)
16 битное знаковое. Всётаки 16 бит это 65536.
65536 всмысле значений 0...65535
Да-да, точно. Спасибо, исправил.
В смысле, тут подразумевается диапазон от -32,768 до +32
хабропарсер съел кусок числа.
от -32768 до +32767
да-да-да, не могу согласиться, (не упоминай имя спектрума всуе!): 2^16 = 65536, а 32768 это все-таки 2^15
спасибо что исправили!
(не читайте комментарий выше!)
Число-то, наверное, всё же 16-и битное, но знаковое. И Опера, скорее всего, отрицательные числа в этих переменных не обрабатывает.
По-моему причину уже миллион раз объясняли: Opera работает под кучей различных платформ (в том числе всякие телевизоры, приставки и т.п.), а движок везде один и тот же. Так вот это типа ограничение, накладываемое некоторыми платформами.

Я далёк от веб-разработки, но… неужели 216 — это так мало? o_O Зачем вообще можно использовать такие размеры?
Пардон, 215 − 1
На моем телефоне ОупенОфис не запуститься. Так что, по Вашем, под платформу моего телефона платформу урезать ОупенОфис?
Или может стоит таки сделать мобильную (как пример)?
*под платформу моего телефона платформу урезать*
Вы сравнили х** с пальцем. Масштаб сравниваемых продуктов не сопоставим.

Тем более, всем известно, что у Opera Mobile движок тот же, что и у Desktop-версии, и в этом как раз вся фишка.
я сравнял не прдукты, а концепцию программирования, в т.ч. веб.
Директивы препроцессора никто не отменял. Вы так говорить, как будто нельзя на билдфабрику повлиять нормально. Ну глупости, серьезно.
Приведите мне вменяемый пример, где нужны такие большие цифры, чтобы я мог оценить рентабельность того, что Вы предлагаете.
Одно из важнейших правил — не ограничивать то, что можно не ограничивать. Оно здесь применимо вполне и без особых проблем, на мой взгляд. Если проблемы имеют место быть — это «затык» архитектурного, либо организационного (билд-ферма) решения.
Ничего идеального не бывает. Когда создавался движок, посчитали, что нет смысла выделять на длину/ширину больше, а теперь, по-видимому, затраты на исправление данной ситуации превосходят выгоду.

Да и опять же, Вы б показали мне для начала стандарт, где прямо сказано, что это баг.

Кстати, мне не совсем ясно, если в Opera длина и ширина объявлены как uint16, то с какой радости оно вдруг должно стать отрицательным?
Речь идет о небольшом промахе, на мой взгляд. Это далеко не критично, более того эта «проблема» имеет наименьший приоритет. Я лишь хочу сказать, что не должно быть особых проблем в исправлении этой мелочи.
Зато есть куча «проблем» более приоритетных.
:))) Верю!
Если же вы имеете в виду, что затраты на приведение ситуации в порядок не оправданы по сравнению с эффективностью решения и его актуальностью, то, практически полностью уверен в том, что решение ситуации практически беззатратно (либо решается очень просто и быстро, либо помогает решать «затык», который еще не раз может всплыть в диких проявлениях).
Я бы на Вашем месте не был столь уверен, не взглянув предварительно на исходные коды Оперы.
Согласен с вами, но я сталкивался с очень крупными проектами и отдаю себе отчет о чем идет речь. Если же данный момент завязан действительно глубоко (глубже глубокого), то все-таки, имхо, это есть ничто иное как ошибка в архитектуре.
Везде есть ошибки — от этого никуда не деться.
Мы слишком долго «скакали туда-сюда» в процессе обсуждения. С удовольствием бы призвал кого-нибудь из разработчиков Opera, но, боюсь, это невозможно.

На вашем, вполне адекватном «резюме» и завершим полемику, пожалуй.

Да, это хорошая идея :)

P.S. Если я когда-нибудь буду работать в Opera, обязательно исправлю этот недочёт ;)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории