- 1
originalTransform
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+102
originalTransform
final Transform starscream = root.getLocalTransform();
final Transform skywarp = transform.clone();
+16
#include <iostream>
using namespace std;
struct T{int a;T(){cout<<"T"<<this<<endl;}~T(){cout<<"~T"<<this<<endl;}};
struct D:public T{int b;D(){cout<<"D"<<this<<endl;}~D(){cout<<"~D"<<this<<endl;}};
int main() {
T* a = new D[2];
cout<<"mission failure"<<endl;
delete[] a;
return 0;
}
Писал тест специально для Тараса:
Виртуальный деструктор в базовых классах нужен:
*Для вызова деструкторов всех потомков. Иногда это не нужно, тк поля структуры тривиальны. Согласен с Тарасом.
*Для правильного выбора перегруженного оператора delete. Создал одним менеджером памяти, а удалил в другой - это плохо. Но также бывает редко и только в специфичных проектах.
Но вот то, что демонстрируется в этом примере - думаю чего-нибудь такого создатели той библиотеки, что ковырял Тарас, и опасались.
Не просто было вызван деструктор только для предков, забыв о деструкторах потомков, но и:
*Деструктор предков был вызван для this не по тем адресам, где расположены объекты.
Не удивлюсь, если:
*В некоторых кулхацкерских реализациях менеджеров памяти будет удален буфер меньшего размера и куча попортится или оставшаяся не удаленная часть массива в куче просто утекет.
http://liveworkspace.org/code/2X3MR0$8
+156
function postGameOrder(option) {
// 48 cтрок кода
if (option == 1) {
if (!confirm("Are you sure you want to save this configuration?")) {
return false;
}
}
// 45 строк кода
}
P.S. Умолчу уже о том, что среди тех 48 и 45 строк кода происходит обращение к глобальным переменным.
На публикацию же вдохновило то, что вот это обращение к option — единственное во всей функции.
+136
i = 0;
while ((p_c = strchr(&str[i], c)) != NULL) {
k = p_c - str;
for (j = 0; j < k - i; j++)
putchar(' ');
putchar('*');
i = k + 1;
}
putchar('\n');
очень простой способ подчеркнуть определённые символы в массиве знаков
−84
protected override function onLoaded() : void {
super.onLoaded();
var sleepComplete : Function = function () : void {
closeWindow();
};
onGuest ();
sleep.run( 1000, sleepComplete )
}
+73
if (jsonValues.toString().contains("acctContext") == true) {
try {
objectRelMethod = impl.provisionDevice(
jsonValues.getString("acctContext"),
jsonValues.getString("persoIdentityRequest"));
}catch(JSONException e){
objectRelMethod = impl.provisionDevice(null, null);
}
}
и туда же... и это называется гордым словом "мидл"...
+81
if (request.equals("") || request == null) {
Response.status(Response.Status.NO_CONTENT).build();
}
ну сколько можно...
+54
function bezpezdu_num($num)
{
if(isset($num) && !empty($num) && is_numeric($num))
return true;
else
return false;
}
function pizdec($text)
{
$showtext = htmlspecialchars($text);
exit($showtext);
}
$app->run_epta();
+56
function goto($url, $time = 0)
{
exit('<META HTTP-EQUIV="REFRESH" CONTENT="'.$time.';URL='.$url.'">');
}
+43
function Podergatsya($i)
{
$i++;
$i--;
return $i;
}
Индусская CMS