- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
/***********************************************************************************
*
* AddItem
*
* Adds SearchTemplate search to the internal search engines list
* and to the UserSearches
*
***********************************************************************************/
OP_STATUS SearchEngineManager::AddItem(SearchTemplate* search)
{
// trying to modify searches before LoadSearchesL() ?
OP_ASSERT(HasLoadedConfig());
if (!search->GetUniqueGUID().HasContent())
{
OpString guid;
if (OpStatus::IsSuccess(StringUtils::GenerateClientID(guid)))
{
search->SetUniqueGUID(guid.CStr());
OP_ASSERT(search->GetUniqueGUID().HasContent());
}
}
// Should never add item that's already in the list
SearchTemplate* temp = g_searchEngineManager->GetByUniqueGUID(search->GetUniqueGUID());
OP_ASSERT(!temp);
OP_STATUS status = m_search_engines_list.Add(search);
if (OpStatus::IsSuccess(status))
{
m_usersearches->AddUserSearch(search);
#ifdef SUPPORT_SYNC_SEARCHES
BroadcastSearchEngineAdded(search);
#endif
}
return status;
}
inkanus-gray 20.01.2017 01:23 # 0
guest 20.01.2017 02:01 # 0
guest 20.01.2017 02:05 # +1
inkanus-gray 20.01.2017 12:59 # +1
Вот ещё пример:
Перед ассертом выполняется полезная операция, но проверка статуса выполняется только в дебаге.
inkanus-gray 20.01.2017 14:36 # +4
MSVC выдаёт ворнинги всего пяти типов:
1. local variable is initialized but not referenced, когда после инициализации переменной идёт OP_ASSERT.
2. default constructor could not be generated; user defined constructor required, когда конструктор объявляется только в некоторых сборках, а в остальных класс болтается вхолостую.
3. 'type cast' : from function pointer <...> to data pointer 'void *'
4. potentially uninitialized local variable — увы, есть и такой грех.
5. unreachable code, когда выше по коду были return'ы (хотя на самом деле при некоторых условиях код достижим).
Надо попробовать собрать gcc, шлангом и другими компиляторами для сравнения.
guestinho 20.01.2017 16:06 # 0
inkanus-gray 20.01.2017 18:02 # 0
Хотел скомпилировать в Mingw или в Cygwin, но в проекте почти нет мейкфайлов, потому что используется собственная система сборки flower, написанная напитоне. Никогда бы не подумал, что Опера пошлёт меня напитон... Питонячий код использует вызов метода poll, который в прыщеговне виндовом порте Питона отсутствует. Значит, чтобы скомпилировать из-под Windows, придётся переписывать вот это:
И вот это:
inkanus-gray 22.01.2017 14:46 # 0
1. В винсокете, начиная с Висты, появилась функция WSAPoll, которая является аналогом никсового poll. Но для её использования придётся патчить и перекомпилировать прыщеговно:
https://bugs.python.org/issue16507
2. Заменить в скриптах select.poll() на select.select() (и соответственно пропатчить другие вызовы).
inkanus-gray 22.01.2017 15:38 # 0
Вот жопа.
inkanus-gray 22.01.2017 15:54 # 0
Теперь ругается на отсутствие сигналов...
inkanus-gray 22.01.2017 16:00 # 0
http://python.su/forum/topic/12946/
barop 22.01.2017 16:12 # +3
inkanus-gray 22.01.2017 16:36 # 0
http://stackoverflow.com/questions/6260149/os-symlink-support-in-windows
defecate-plusplus 22.01.2017 21:12 # 0
комплишн порты надо использовать для нормальной асинхронщины на шиндошс
тот же буст.асио
huesto 22.01.2017 21:16 # 0
defecate-plusplus 22.01.2017 21:18 # +1
roman-kashitsyn 22.01.2017 21:28 # 0
pydarasio, ага
defecate-plusplus 22.01.2017 21:38 # 0
как тот же буст.асио
скрывает под капот всю эту платформозависимость
гугл подсказывает, что и для питонодоширакоблядей есть потуги, всякие PyParallel, ну или вот http://bugs.python.org/issue16175
inkanus-gray 22.01.2017 22:25 # +2
Яндекс ничего не нашёл по этому запросу, а Гугл предложил поискать пидарасов.
barop 23.01.2017 03:02 # +1
Вау
barop 22.01.2017 16:10 # +1
Для файлов нужно оверлапд и вейтформультиплобжекц или GetOverlappedResult
Кстати , еполл в линуксе тоже не совсем честно полит файлы
Но апи, конечно, приятнее
roman-kashitsyn 20.01.2017 13:12 # +5
А есть функция GetNonUniqueGloballyUniqueIDentifier?
barop 20.01.2017 16:25 # +2
bormand 20.01.2017 19:32 # +1
barop 20.01.2017 19:40 # +1
CHayT 20.01.2017 20:12 # 0
guestinho 21.01.2017 23:49 # 0
inkanus-gray 22.01.2017 00:18 # +3
barop 22.01.2017 01:23 # +7
inkanus-gray 22.01.2017 14:42 # +1
roman-kashitsyn 22.01.2017 02:48 # +3
Возможно, это был первый в истории человечества спойлер
dxd 22.01.2017 06:16 # +3
barop 22.01.2017 15:39 # 0
guestinho 23.01.2017 18:15 # 0
CHayT 23.01.2017 18:22 # 0
roman-kashitsyn 23.01.2017 18:22 # +2
Аниме тут не при чём. Это скандинавская мифилогия, проверь.
Её даже в школе проходят в шестом классе (во всяком случае, у нас была).
guestinho 23.01.2017 18:26 # 0
roman-kashitsyn 23.01.2017 18:44 # 0
Opera
bormand 23.01.2017 19:15 # 0
Видимо, он всё-таки зацепил одним глазом весьма популярную анимеху, где из этой самой мифологии кучу отсылочек надёргали...
bormand 23.01.2017 19:21 # +3
fxd
guestinho 23.01.2017 19:31 # 0
bormand 23.01.2017 19:31 # +1
huesto 23.01.2017 21:36 # 0
guestinho 23.01.2017 22:06 # 0