- 1
- 2
- 3
- 4
- 5
private unsafe bool IsOptionalOutParamSet(out Guid param)
{
fixed (Guid* guidPtr = ¶m)
return (IntPtr) guidPtr != IntPtr.Zero;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+131
private unsafe bool IsOptionalOutParamSet(out Guid param)
{
fixed (Guid* guidPtr = ¶m)
return (IntPtr) guidPtr != IntPtr.Zero;
}
Lokich 16.10.2013 12:14 # +2
krypt 16.10.2013 12:39 # +1
roman-kashitsyn 16.10.2013 12:41 # 0
krypt 16.10.2013 12:42 # 0
roman-kashitsyn 16.10.2013 12:46 # 0
anonimb84a2f6fd141 18.10.2013 14:33 # 0
roman-kashitsyn 18.10.2013 14:45 # 0
anonimb84a2f6fd141 29.11.2013 17:13 # 0
bormand 29.11.2013 19:07 # 0
Т.е. еще как двигает объекты и меняет указатели. И причем делает это как при полной сборке, так и при частичной сборке gen0.
Что он делает с pinned объектами, которые прикололи с помощью fixed - х.з. Но судя по фразе "Excessive pinning of objects can increase fragmentation" он тупо их не трогает, и аллокатору потом приходится обходить эти объекты стороной, выделяя память за ними, если перед ними не получилось. От чего в куче остаются дырки. Но т.к. pinned объектов в нормальной проге не так много - всем похуй ;)
bormand 29.11.2013 19:13 # 0
А если данные надо постоянно держать по одному адресу, потому что к ним лезут нативные треды, то их всяко можно выделить из нативной неуправляемой кучи.
krypt 16.10.2013 12:45 # 0
LispGovno 16.10.2013 16:18 # 0
guest 18.10.2013 13:49 # 0
guest 13.12.2013 19:51 # 0
LispGovno 13.12.2013 19:56 # 0
bormand 13.12.2013 20:02 # +1
Stertor 13.12.2013 23:32 # +2
Stertor 13.12.2013 23:34 # +1
D
anonimb84a2f6fd141 18.10.2013 14:32 # 0
guest 18.10.2013 17:24 # +1
t. стив баллмер
anonimb84a2f6fd141 29.11.2013 17:12 # 0
kegdan 16.10.2013 12:47 # +2
wvxvw 16.10.2013 21:31 # 0
kegdan 16.10.2013 21:43 # 0
guest 18.10.2013 17:29 # 0
guest 29.11.2013 07:19 # 0