Skip to content

Commit 65a0f79

Browse files
committed
Early return to save a few identations.
1 parent 294ae88 commit 65a0f79

4 files changed

Lines changed: 500 additions & 492 deletions

File tree

win/ole_IDropTarget.go

Lines changed: 75 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -151,88 +151,90 @@ type _IDropTargetVt struct {
151151
var _iDropTargetVtPtrs _IDropTargetVt // Global to keep the syscall callback pointers.
152152

153153
func (me *_IDropTargetVt) init() {
154-
if me.QueryInterface == 0 { // initialize only once
155-
*me = _IDropTargetVt{
156-
_IUnknownVt: _IUnknownVt{
157-
QueryInterface: syscall.NewCallback(
158-
func(_p uintptr, _riid uintptr, ppv ***_IUnknownVt) uintptr {
159-
*ppv = nil
160-
return uintptr(co.HRESULT_E_NOTIMPL)
161-
},
162-
),
163-
AddRef: syscall.NewCallback(
164-
func(p uintptr) uintptr {
165-
ppImpl := (**_IDropTargetImpl)(unsafe.Pointer(p))
166-
newCount := atomic.AddUint32(&(**ppImpl).counter, 1)
167-
return uintptr(newCount)
168-
},
169-
),
170-
Release: syscall.NewCallback(
171-
func(p uintptr) uintptr {
172-
ppImpl := (**_IDropTargetImpl)(unsafe.Pointer(p))
173-
newCount := atomic.AddUint32(&(*ppImpl).counter, ^uint32(0)) // decrement 1
174-
if newCount == 0 {
175-
utl.PtrCache.Delete(unsafe.Pointer(*ppImpl)) // now GC can collect them
176-
utl.PtrCache.Delete(unsafe.Pointer(ppImpl))
177-
}
178-
return uintptr(newCount)
179-
},
180-
),
181-
},
182-
DragEnter: syscall.NewCallback(
183-
func(p uintptr, vtDataObj **_IUnknownVt, grfKeyState uint32, pt POINT, pdwEffect *uint32) uintptr {
184-
ppImpl := (**_IDropTargetImpl)(unsafe.Pointer(p))
185-
if fun := (*ppImpl).dragEnter; fun == nil { // user didn't define a callback
186-
return uintptr(co.HRESULT_S_OK)
187-
} else {
188-
return uintptr(fun(
189-
&IDataObject{IUnknown{vtDataObj}},
190-
co.MK(grfKeyState),
191-
pt,
192-
(*co.DROPEFFECT)(pdwEffect),
193-
))
194-
}
195-
},
196-
),
197-
DragOver: syscall.NewCallback(
198-
func(p uintptr, grfKeyState uint32, pt POINT, pdwEffect *uint32) uintptr {
199-
ppImpl := (**_IDropTargetImpl)(unsafe.Pointer(p))
200-
if fun := (*ppImpl).dragOver; fun == nil { // user didn't define a callback
201-
return uintptr(co.HRESULT_S_OK)
202-
} else {
203-
return uintptr(fun(
204-
co.MK(grfKeyState),
205-
pt,
206-
(*co.DROPEFFECT)(pdwEffect),
207-
))
208-
}
154+
if me.QueryInterface != 0 {
155+
return
156+
}
157+
158+
*me = _IDropTargetVt{
159+
_IUnknownVt: _IUnknownVt{
160+
QueryInterface: syscall.NewCallback(
161+
func(_p uintptr, _riid uintptr, ppv ***_IUnknownVt) uintptr {
162+
*ppv = nil
163+
return uintptr(co.HRESULT_E_NOTIMPL)
209164
},
210165
),
211-
DragLeave: syscall.NewCallback(
166+
AddRef: syscall.NewCallback(
212167
func(p uintptr) uintptr {
213168
ppImpl := (**_IDropTargetImpl)(unsafe.Pointer(p))
214-
if fun := (*ppImpl).dragLeave; fun == nil { // user didn't define a callback
215-
return uintptr(co.HRESULT_S_OK)
216-
} else {
217-
return uintptr(fun())
218-
}
169+
newCount := atomic.AddUint32(&(**ppImpl).counter, 1)
170+
return uintptr(newCount)
219171
},
220172
),
221-
Drop: syscall.NewCallback(
222-
func(p uintptr, vtDataObj **_IUnknownVt, grfKeyState uint32, pt POINT, pdwEffect *uint32) uintptr {
173+
Release: syscall.NewCallback(
174+
func(p uintptr) uintptr {
223175
ppImpl := (**_IDropTargetImpl)(unsafe.Pointer(p))
224-
if fun := (*ppImpl).drop; fun == nil { // user didn't define a callback
225-
return uintptr(co.HRESULT_S_OK)
226-
} else {
227-
return uintptr(fun(
228-
&IDataObject{IUnknown{vtDataObj}},
229-
co.MK(grfKeyState),
230-
pt,
231-
(*co.DROPEFFECT)(pdwEffect),
232-
))
176+
newCount := atomic.AddUint32(&(*ppImpl).counter, ^uint32(0)) // decrement 1
177+
if newCount == 0 {
178+
utl.PtrCache.Delete(unsafe.Pointer(*ppImpl)) // now GC can collect them
179+
utl.PtrCache.Delete(unsafe.Pointer(ppImpl))
233180
}
181+
return uintptr(newCount)
234182
},
235183
),
236-
}
184+
},
185+
DragEnter: syscall.NewCallback(
186+
func(p uintptr, vtDataObj **_IUnknownVt, grfKeyState uint32, pt POINT, pdwEffect *uint32) uintptr {
187+
ppImpl := (**_IDropTargetImpl)(unsafe.Pointer(p))
188+
if fun := (*ppImpl).dragEnter; fun == nil { // user didn't define a callback
189+
return uintptr(co.HRESULT_S_OK)
190+
} else {
191+
return uintptr(fun(
192+
&IDataObject{IUnknown{vtDataObj}},
193+
co.MK(grfKeyState),
194+
pt,
195+
(*co.DROPEFFECT)(pdwEffect),
196+
))
197+
}
198+
},
199+
),
200+
DragOver: syscall.NewCallback(
201+
func(p uintptr, grfKeyState uint32, pt POINT, pdwEffect *uint32) uintptr {
202+
ppImpl := (**_IDropTargetImpl)(unsafe.Pointer(p))
203+
if fun := (*ppImpl).dragOver; fun == nil { // user didn't define a callback
204+
return uintptr(co.HRESULT_S_OK)
205+
} else {
206+
return uintptr(fun(
207+
co.MK(grfKeyState),
208+
pt,
209+
(*co.DROPEFFECT)(pdwEffect),
210+
))
211+
}
212+
},
213+
),
214+
DragLeave: syscall.NewCallback(
215+
func(p uintptr) uintptr {
216+
ppImpl := (**_IDropTargetImpl)(unsafe.Pointer(p))
217+
if fun := (*ppImpl).dragLeave; fun == nil { // user didn't define a callback
218+
return uintptr(co.HRESULT_S_OK)
219+
} else {
220+
return uintptr(fun())
221+
}
222+
},
223+
),
224+
Drop: syscall.NewCallback(
225+
func(p uintptr, vtDataObj **_IUnknownVt, grfKeyState uint32, pt POINT, pdwEffect *uint32) uintptr {
226+
ppImpl := (**_IDropTargetImpl)(unsafe.Pointer(p))
227+
if fun := (*ppImpl).drop; fun == nil { // user didn't define a callback
228+
return uintptr(co.HRESULT_S_OK)
229+
} else {
230+
return uintptr(fun(
231+
&IDataObject{IUnknown{vtDataObj}},
232+
co.MK(grfKeyState),
233+
pt,
234+
(*co.DROPEFFECT)(pdwEffect),
235+
))
236+
}
237+
},
238+
),
237239
}
238240
}

win/shell_IFileDialogEvents.go

Lines changed: 98 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -120,110 +120,112 @@ type _IFileDialogEventsVt struct {
120120
var _iFileDialogEventsVtPtrs _IFileDialogEventsVt // Global to keep the syscall callback pointers.
121121

122122
func (me *_IFileDialogEventsVt) init() {
123-
if me.QueryInterface == 0 { // initialize only once
124-
*me = _IFileDialogEventsVt{
125-
_IUnknownVt: _IUnknownVt{
126-
QueryInterface: syscall.NewCallback(
127-
func(_p uintptr, _riid uintptr, ppv ***_IUnknownVt) uintptr {
128-
*ppv = nil
129-
return uintptr(co.HRESULT_E_NOTIMPL)
130-
},
131-
),
132-
AddRef: syscall.NewCallback(
133-
func(p uintptr) uintptr {
134-
ppImpl := (**_IFileDialogEventsImpl)(unsafe.Pointer(p))
135-
newCount := atomic.AddUint32(&(**ppImpl).counter, 1)
136-
return uintptr(newCount)
137-
},
138-
),
139-
Release: syscall.NewCallback(
140-
func(p uintptr) uintptr {
141-
ppImpl := (**_IFileDialogEventsImpl)(unsafe.Pointer(p))
142-
newCount := atomic.AddUint32(&(*ppImpl).counter, ^uint32(0)) // decrement 1
143-
if newCount == 0 {
144-
utl.PtrCache.Delete(unsafe.Pointer(*ppImpl)) // now GC can collect them
145-
utl.PtrCache.Delete(unsafe.Pointer(ppImpl))
146-
}
147-
return uintptr(newCount)
148-
},
149-
),
150-
},
151-
OnFileOk: syscall.NewCallback(
152-
func(p uintptr, _ **_IUnknownVt) uintptr {
153-
ppImpl := (**_IFileDialogEventsImpl)(unsafe.Pointer(p))
154-
if fun := (*ppImpl).onFileOk; fun == nil { // user didn't define a callback
155-
return uintptr(co.HRESULT_S_OK)
156-
} else {
157-
return uintptr(fun())
158-
}
159-
},
160-
),
161-
OnFolderChanging: syscall.NewCallback(
162-
func(p uintptr, _ **_IUnknownVt, vtSi **_IUnknownVt) uintptr {
163-
ppImpl := (**_IFileDialogEventsImpl)(unsafe.Pointer(p))
164-
if fun := (*ppImpl).onFolderChanging; fun == nil { // user didn't define a callback
165-
return uintptr(co.HRESULT_S_OK)
166-
} else {
167-
return uintptr(fun(&IShellItem{IUnknown{vtSi}}))
168-
}
169-
},
170-
),
171-
OnFolderChange: syscall.NewCallback(
172-
func(p uintptr, _ **_IUnknownVt) uintptr {
173-
ppImpl := (**_IFileDialogEventsImpl)(unsafe.Pointer(p))
174-
if fun := (*ppImpl).onFolderChange; fun == nil { // user didn't define a callback
175-
return uintptr(co.HRESULT_S_OK)
176-
} else {
177-
return uintptr(fun())
178-
}
179-
},
180-
),
181-
OnSelectionChange: syscall.NewCallback(
182-
func(p uintptr, _ **_IUnknownVt) uintptr {
183-
ppImpl := (**_IFileDialogEventsImpl)(unsafe.Pointer(p))
184-
if fun := (*ppImpl).onSelectionChange; fun == nil { // user didn't define a callback
185-
return uintptr(co.HRESULT_S_OK)
186-
} else {
187-
return uintptr(fun())
188-
}
189-
},
190-
),
191-
OnShareViolation: syscall.NewCallback(
192-
func(p uintptr, _ **_IUnknownVt, vtSi **_IUnknownVt, pResponse *uint32) uintptr {
193-
ppImpl := (**_IFileDialogEventsImpl)(unsafe.Pointer(p))
194-
if fun := (*ppImpl).onShareViolation; fun == nil { // user didn't define a callback
195-
return uintptr(co.HRESULT_S_OK)
196-
} else {
197-
return uintptr(fun(
198-
&IShellItem{IUnknown{vtSi}},
199-
(*co.FDESVR)(pResponse),
200-
))
201-
}
123+
if me.QueryInterface != 0 {
124+
return
125+
}
126+
127+
*me = _IFileDialogEventsVt{
128+
_IUnknownVt: _IUnknownVt{
129+
QueryInterface: syscall.NewCallback(
130+
func(_p uintptr, _riid uintptr, ppv ***_IUnknownVt) uintptr {
131+
*ppv = nil
132+
return uintptr(co.HRESULT_E_NOTIMPL)
202133
},
203134
),
204-
OnTypeChange: syscall.NewCallback(
205-
func(p uintptr, _ **_IUnknownVt) uintptr {
135+
AddRef: syscall.NewCallback(
136+
func(p uintptr) uintptr {
206137
ppImpl := (**_IFileDialogEventsImpl)(unsafe.Pointer(p))
207-
if fun := (*ppImpl).onTypeChange; fun == nil { // user didn't define a callback
208-
return uintptr(co.HRESULT_S_OK)
209-
} else {
210-
return uintptr(fun())
211-
}
138+
newCount := atomic.AddUint32(&(**ppImpl).counter, 1)
139+
return uintptr(newCount)
212140
},
213141
),
214-
OnOverwrite: syscall.NewCallback(
215-
func(p uintptr, _ **_IUnknownVt, vtSi **_IUnknownVt, pResponse *uint32) uintptr {
142+
Release: syscall.NewCallback(
143+
func(p uintptr) uintptr {
216144
ppImpl := (**_IFileDialogEventsImpl)(unsafe.Pointer(p))
217-
if fun := (*ppImpl).onOverwrite; fun == nil { // user didn't define a callback
218-
return uintptr(co.HRESULT_S_OK)
219-
} else {
220-
return uintptr(fun(
221-
&IShellItem{IUnknown{vtSi}},
222-
(*co.FDEOR)(pResponse),
223-
))
145+
newCount := atomic.AddUint32(&(*ppImpl).counter, ^uint32(0)) // decrement 1
146+
if newCount == 0 {
147+
utl.PtrCache.Delete(unsafe.Pointer(*ppImpl)) // now GC can collect them
148+
utl.PtrCache.Delete(unsafe.Pointer(ppImpl))
224149
}
150+
return uintptr(newCount)
225151
},
226152
),
227-
}
153+
},
154+
OnFileOk: syscall.NewCallback(
155+
func(p uintptr, _ **_IUnknownVt) uintptr {
156+
ppImpl := (**_IFileDialogEventsImpl)(unsafe.Pointer(p))
157+
if fun := (*ppImpl).onFileOk; fun == nil { // user didn't define a callback
158+
return uintptr(co.HRESULT_S_OK)
159+
} else {
160+
return uintptr(fun())
161+
}
162+
},
163+
),
164+
OnFolderChanging: syscall.NewCallback(
165+
func(p uintptr, _ **_IUnknownVt, vtSi **_IUnknownVt) uintptr {
166+
ppImpl := (**_IFileDialogEventsImpl)(unsafe.Pointer(p))
167+
if fun := (*ppImpl).onFolderChanging; fun == nil { // user didn't define a callback
168+
return uintptr(co.HRESULT_S_OK)
169+
} else {
170+
return uintptr(fun(&IShellItem{IUnknown{vtSi}}))
171+
}
172+
},
173+
),
174+
OnFolderChange: syscall.NewCallback(
175+
func(p uintptr, _ **_IUnknownVt) uintptr {
176+
ppImpl := (**_IFileDialogEventsImpl)(unsafe.Pointer(p))
177+
if fun := (*ppImpl).onFolderChange; fun == nil { // user didn't define a callback
178+
return uintptr(co.HRESULT_S_OK)
179+
} else {
180+
return uintptr(fun())
181+
}
182+
},
183+
),
184+
OnSelectionChange: syscall.NewCallback(
185+
func(p uintptr, _ **_IUnknownVt) uintptr {
186+
ppImpl := (**_IFileDialogEventsImpl)(unsafe.Pointer(p))
187+
if fun := (*ppImpl).onSelectionChange; fun == nil { // user didn't define a callback
188+
return uintptr(co.HRESULT_S_OK)
189+
} else {
190+
return uintptr(fun())
191+
}
192+
},
193+
),
194+
OnShareViolation: syscall.NewCallback(
195+
func(p uintptr, _ **_IUnknownVt, vtSi **_IUnknownVt, pResponse *uint32) uintptr {
196+
ppImpl := (**_IFileDialogEventsImpl)(unsafe.Pointer(p))
197+
if fun := (*ppImpl).onShareViolation; fun == nil { // user didn't define a callback
198+
return uintptr(co.HRESULT_S_OK)
199+
} else {
200+
return uintptr(fun(
201+
&IShellItem{IUnknown{vtSi}},
202+
(*co.FDESVR)(pResponse),
203+
))
204+
}
205+
},
206+
),
207+
OnTypeChange: syscall.NewCallback(
208+
func(p uintptr, _ **_IUnknownVt) uintptr {
209+
ppImpl := (**_IFileDialogEventsImpl)(unsafe.Pointer(p))
210+
if fun := (*ppImpl).onTypeChange; fun == nil { // user didn't define a callback
211+
return uintptr(co.HRESULT_S_OK)
212+
} else {
213+
return uintptr(fun())
214+
}
215+
},
216+
),
217+
OnOverwrite: syscall.NewCallback(
218+
func(p uintptr, _ **_IUnknownVt, vtSi **_IUnknownVt, pResponse *uint32) uintptr {
219+
ppImpl := (**_IFileDialogEventsImpl)(unsafe.Pointer(p))
220+
if fun := (*ppImpl).onOverwrite; fun == nil { // user didn't define a callback
221+
return uintptr(co.HRESULT_S_OK)
222+
} else {
223+
return uintptr(fun(
224+
&IShellItem{IUnknown{vtSi}},
225+
(*co.FDEOR)(pResponse),
226+
))
227+
}
228+
},
229+
),
228230
}
229231
}

0 commit comments

Comments
 (0)