1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

eventbus: removed check on publish, always use receiver, args, sender order for callbacks (#5940)

This commit is contained in:
Carlos Esquerdo Bernat
2020-07-28 17:48:25 +02:00
committed by GitHub
parent 9c028bb299
commit 0539b2a7ea
2 changed files with 13 additions and 19 deletions

View File

@@ -1,6 +1,6 @@
module eventbus
pub type EventHandlerFn fn(voidptr, voidptr, voidptr)
pub type EventHandlerFn fn(receiver voidptr, args voidptr, sender voidptr)
pub struct Publisher {
mut:
@@ -20,7 +20,7 @@ mut:
struct EventHandler {
name string
handler EventHandlerFn
receiver voidptr
receiver voidptr = voidptr(0)
once bool
}
@@ -64,11 +64,7 @@ fn (mut pb Publisher) publish(name string, sender voidptr, args voidptr) {
if event.once {
pb.registry.events.delete(i)
}
if event.receiver != 0 {
event.handler(event.receiver, args, sender)
} else {
event.handler(sender, args, voidptr(0))
}
event.handler(event.receiver, args, sender)
}
}
}
@@ -87,7 +83,6 @@ pub fn (mut s Subscriber) subscribe(name string, handler EventHandlerFn) {
s.registry.events << EventHandler {
name: name
handler: handler
receiver: voidptr(0)
}
}
@@ -103,7 +98,6 @@ pub fn (mut s Subscriber) subscribe_once(name string, handler EventHandlerFn) {
s.registry.events << EventHandler {
name: name
handler: handler
receiver: voidptr(0)
once: true
}
}