- 1
- 2
- 3
- 4
- 5
public static string CreateBrowserCacheExtension(object key)
{
//...Остальной код опущен для ясности
return "Cache=" + Math.Abs(key.GetHashCode());
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+136
public static string CreateBrowserCacheExtension(object key)
{
//...Остальной код опущен для ясности
return "Cache=" + Math.Abs(key.GetHashCode());
}
Legacy code из проекта над которым я работаю.
Косяк в том, что GetHashCode() иногда возвращает значение, равное System.Int32.MinValue.
А это в свою очередь приводит к OverflowException, в случае с Math.Abs(...);
+58
template <typename T>
class MySharedPtr{
public:
explicit MySharedPtr(T* obj) : _obj(obj){}
// --> я дописал
MySharedPtr(const MySharedPtr& other) : _obj(other._obj){ inc_ref_count(_obj);}
// <-- я дописал
MySharedPtr& operator=(const MySharedPtr& other) {
// --> я дописал
if (this == &other)
return *this;
// <-- я дописал
_obj = other._obj;
inc_ref_count(_obj);
}
~MySharedPtr(){
dec_ref_count(_obj);
}
private:
static void inc_ref_count(T* obj){
std::lock_guard<std::mutex> lock(_mutex);
_ref_count[obj] ++ ;
}
static void dec_ref_count(T* obj){
std::lock_guard<std::mutex> lock(_mutex);
if (--_ref_count[obj]){
delete obj;
_ref_count.erase(_ref_count.find(obj));
}
}
T* _obj;
static std::mutex MySharedPtr<T>::_mutex;
static std::map<T*,int> MySharedPtr<T>::_ref_count;
};
template <typename T>
std::map<T*,int> MySharedPtr<T>::_ref_count;
template <typename T>
std::mutex MySharedPtr<T>::_mutex;
сегодня приходил чел-выпускник, написал на листочке shared_ptr, какое ваше мнение?
+146
$synonyms = array(
1 => 'once',
2 => 'twice',
3 => 'three times',
4 => 'four times',
5 => 'five times',
6 => 'six times',
7 => 'seven times',
8 => 'eight times',
9 => 'nine times',
10 => 'ten times',
);
Dima, ты лучший!;)
+155
function compileStr($arrStrings) {
if (is_array($arrStrings)) {
$part1 = 'a:2:{s:5:"VALUE";a:';
$part2 = 's:11:"DESCRIPTION";a:';
$part3 = '}';
$ornums = array();
foreach ($arrStrings as $str) {
$exp = explode(",", str_replace(" ", "", $str));
$ornums = array_merge($ornums, $exp);
}
$ecount = count($ornums);
$s1 = $ecount.':{';
$s2 = $ecount.':{';
for ($i = 0; $i < $ecount; $i++) {
$s1 .= 'i:'.$i.';s:'.strlen($ornums[$i]).':"'.$ornums[$i].'";';
$s2 .= 'i:'.$i.';s:0:"";';
}
$s1 .= '}';
$s2 .= '}';
$result = $part1.$s1.$part2.$s2.$part3;
return $result;
}
}
Нашел в дебрях проекта. Писать php-сериализатор на php - это концептуально )))
если кто не понял функция делает вот это:
if (is_array($arrStrings)) {
$ornums = explode(',', implode(',', str_replace(' ', '', $arrStrings)));
return serialize(array("VALUE" => $ornums, "DESCRIPTION" => array_fill(0, count($ornums), '')));
}
+134
Random random = new Random(Environment.TickCount);
for (int i = 0; i < random.Next(380, 480); i++)
{
Marshal.AllocHGlobal(random.Next(0x4400, 0xd400));
Thread.Sleep(1);
}
Из исходников подрядчика...
Заказчиков надо садить на иглу правильно
+135
if (currentItem.Type.ActiveProperty != null)
{
Type controltype = currentControl.GetType();
PropertyInfo pinfo = controltype.GetProperty(currentItem.Type.ActiveProperty.Name);
bool enabledtrue = (currentItem.Type.ActiveProperty.Name.ToLower() != "readonly");
if ((r1 != 2) || _page.ReadOnly)
enabledtrue = !enabledtrue;
pinfo.SetValue(currentControl, enabledtrue, null);
}
enabledtrue как пример интуитивно-понятного названия переменной
+96
if movcamn[1] then begin
//
if movcams[ 2] then begin if Nmr= 2 then goto m1;
if movcams[ 3] then begin if Nmr= 3 then goto m1;
if movcams[ 4] then begin if Nmr= 4 then goto m1;
if movcams[ 5] then begin if Nmr= 5 then goto m1;
if movcams[ 6] then begin if Nmr= 6 then goto m1;
if movcams[ 7] then begin if Nmr= 7 then goto m1;
if movcams[ 8] then begin if Nmr= 8 then goto m1;
if movcams[ 9] then begin if Nmr= 9 then goto m1;
if movcams[10] then begin if Nmr=10 then goto m1;
if movcams[11] then begin if Nmr=11 then goto m1;
if movcams[12] then begin if Nmr=12 then goto m1;
if movcams[13] then begin if Nmr=13 then goto m1;
if movcams[14] then begin if Nmr=14 then goto m1;
if movcams[15] then begin if Nmr=15 then goto m1;
if movcams[16] then begin if Nmr=16 then goto m1;
if movcams[17] then begin if Nmr=17 then goto m1;
if movcams[18] then begin if Nmr=18 then goto m1;
if movcams[19] then begin if Nmr=19 then goto m1;
if movcams[20] then begin if Nmr=20 then goto m1;
m1: Summs1:=0; movcams[1]:=False; movcamn[1]:=False;
movcam[1,1]:=False; movcam[1,2]:=False; movcam[1,3]:=False; movcam[1,4]:=False;
Summs2:=0; movcams[2]:=False; movcamn[2]:=False;
movcam[2,1]:=False; movcam[2,2]:=False; movcam[2,3]:=False; movcam[2,4]:=False;
if Nmr=2 then goto m2; // <---
Summs3:=0; movcams[3]:=False; movcamn[3]:=False;
movcam[3,1]:=False; movcam[3,2]:=False; movcam[3,3]:=False; movcam[3,4]:=False;
if Nmr=3 then goto m2; // <---
Summs4:=0; movcams[4]:=False; movcamn[4]:=False;
movcam[4,1]:=False; movcam[4,2]:=False; movcam[4,3]:=False; movcam[4,4]:=False;
if Nmr=4 then goto m2; // <---
Summs5:=0; movcams[5]:=False; movcamn[5]:=False;
movcam[5,1]:=False; movcam[5,2]:=False; movcam[5,3]:=False; movcam[5,4]:=False;
if Nmr=5 then goto m2; // <---
Summs6:=0; movcams[6]:=False; movcamn[6]:=False;
movcam[6,1]:=False; movcam[6,2]:=False; movcam[6,3]:=False; movcam[6,4]:=False;
if Nmr=6 then goto m2; // <---
Summs7:=0; movcams[7]:=False; movcamn[7]:=False;
movcam[7,1]:=False; movcam[7,2]:=False; movcam[7,3]:=False; movcam[7,4]:=False;
if Nmr=7 then goto m2; // <---
Summs8:=0; movcams[8]:=False; movcamn[8]:=False;
movcam[8,1]:=False; movcam[8,2]:=False; movcam[8,3]:=False; movcam[8,4]:=False;
if Nmr=8 then goto m2; // <---
Summs9:=0; movcams[9]:=False; movcamn[9]:=False;
movcam[9,1]:=False; movcam[9,2]:=False; movcam[9,3]:=False; movcam[9,4]:=False;
if Nmr=9 then goto m2; // <---
//
Summs10:=0; movcams[10]:=False; movcamn[10]:=False;
movcam[10,1]:=False; movcam[10,2]:=False; movcam[10,3]:=False; movcam[10,4]:=False;
if Nmr=10 then goto m2; // <---
Summs11:=0; movcams[11]:=False; movcamn[11]:=False;
movcam[11,1]:=False; movcam[11,2]:=False; movcam[11,3]:=False; movcam[10,4]:=False;
if Nmr=11 then goto m2; // <---
Summs12:=0; movcams[12]:=False; movcamn[12]:=False;
movcam[12,1]:=False; movcam[12,2]:=False; movcam[12,3]:=False; movcam[10,4]:=False;
if Nmr=12 then goto m2; // <---
Summs13:=0; movcams[13]:=False; movcamn[13]:=False;
movcam[13,1]:=False; movcam[13,2]:=False; movcam[13,3]:=False; movcam[10,4]:=False;
if Nmr=13 then goto m2; // <---
Summs14:=0; movcams[14]:=False; movcamn[14]:=False;
movcam[14,1]:=False; movcam[14,2]:=False; movcam[14,3]:=False; movcam[10,4]:=False;
if Nmr=14 then goto m2; // <---
Summs15:=0; movcams[15]:=False; movcamn[15]:=False;
movcam[15,1]:=False; movcam[15,2]:=False; movcam[15,3]:=False; movcam[10,4]:=False;
if Nmr=15 then goto m2; // <---
Summs16:=0; movcams[16]:=False; movcamn[16]:=False;
movcam[16,1]:=False; movcam[16,2]:=False; movcam[16,3]:=False; movcam[10,4]:=False;
if Nmr=16 then goto m2; // <---
Summs17:=0; movcams[17]:=False; movcamn[17]:=False;
movcam[17,1]:=False; movcam[17,2]:=False; movcam[17,3]:=False; movcam[10,4]:=False;
if Nmr=17 then goto m2; // <---
Summs18:=0; movcams[18]:=False; movcamn[18]:=False;
movcam[18,1]:=False; movcam[18,2]:=False; movcam[18,3]:=False; movcam[10,4]:=False;
if Nmr=18 then goto m2; // <---
Summs19:=0; movcams[19]:=False; movcamn[19]:=False;
movcam[19,1]:=False; movcam[19,2]:=False; movcam[19,3]:=False; movcam[10,4]:=False;
m2:
end; end; end; end; end; end; end; end; end; end; // 20 штук
end; end; end; end; end; end; end; end; end; end;
Попалось в одном проекте, который приходилось расчищать.
Особенно позабавило заботливое "// 20 штук" в конце.
+151
$('.catalogue-list .in-cart a, .items-slider .in-cart a').click(function()
{
var src_pic = $(this).parent('div').parent().children('.pic_ajax').children().children().attr('src');
var name_pic = $(this).parent('div').parent().children('.pic').children().children().attr('alt');
var colors = $(this).parent('div').children('.colors_values').children('input');
var colors_for_ajax = "";
$.each( colors, function() {
colors_for_ajax = colors_for_ajax+$(this).val()+',';
});
if(colors_for_ajax)
var url=$(this).attr('href');
$.fancybox({
type : 'ajax',
href : '/catalogue/ajax_add_to_cart_popup.php?NAME='+encodeURI(name_pic)+'&SRC='+encodeURI(src_pic)+'&COLORS='+encodeURI(colors_for_ajax)+'&URL_ADD='+encodeURI(url),
fitToView : false,
width : '336px',
height : '234px',
autoSize : false,
autoDimensions: false,
openEffect : 'fade',
closeEffect : 'none',
margin : 0,
padding : 0
});
if(!colors_for_ajax)
{
$(this).parent('.in-cart').find('.ajax-load').show('fast');
var url=$(this).attr('href');
$('.top-line .block .cart').load(url,'',onAjaxCart);
}
return false;
});
Осталось от прошлого разраба в проекте. Аяксовое добавление товара в корзину...
Зачем получать имя,свойства,картинку из ID элемента?! Я лучше это передам параметрами.
+153
$rec_area=sql2arr2('select om,alr from omolog where omvis=1');
названия полей и таблицы
+159
class Z {
public function __toString() { return 'zzzzzzzz'; }
}
$zz = array();
$zz[call_user_func_array('sprintf', array('%s', new Z))] = 1;
нахуй так жить?