@@ -161,29 +161,28 @@ static void kafka_conf_error_cb(rd_kafka_t *rk, int err, const char *reason, voi
161
161
zval_ptr_dtor (& args [2 ]);
162
162
}
163
163
164
- static void kafka_conf_dr_msg_cb (rd_kafka_t * rk , const rd_kafka_message_t * msg , void * opaque )
164
+ void kafka_conf_dr_msg_cb (rd_kafka_t * rk , const rd_kafka_message_t * msg , void * opaque )
165
165
{
166
166
kafka_conf_callbacks * cbs = (kafka_conf_callbacks * ) opaque ;
167
+ zend_string * msg_opaque = msg -> _private ;
167
168
zval args [2 ];
168
169
169
- if (! opaque ) {
170
- return ;
171
- }
170
+ if (cbs != NULL && cbs -> dr_msg ) {
171
+ ZVAL_NULL ( & args [ 0 ]) ;
172
+ ZVAL_NULL ( & args [ 1 ]);
172
173
173
- if (!cbs -> dr_msg ) {
174
- return ;
175
- }
174
+ ZVAL_ZVAL (& args [0 ], & cbs -> zrk , 1 , 0 );
175
+ kafka_message_new (& args [1 ], msg , msg_opaque );
176
176
177
- ZVAL_NULL (& args [0 ]);
178
- ZVAL_NULL (& args [1 ]);
177
+ rdkafka_call_function (& cbs -> dr_msg -> fci , & cbs -> dr_msg -> fcc , NULL , 2 , args );
179
178
180
- ZVAL_ZVAL (& args [0 ], & cbs -> zrk , 1 , 0 );
181
- kafka_message_new (& args [1 ], msg );
182
-
183
- rdkafka_call_function (& cbs -> dr_msg -> fci , & cbs -> dr_msg -> fcc , NULL , 2 , args );
179
+ zval_ptr_dtor (& args [0 ]);
180
+ zval_ptr_dtor (& args [1 ]);
181
+ }
184
182
185
- zval_ptr_dtor (& args [0 ]);
186
- zval_ptr_dtor (& args [1 ]);
183
+ if (msg_opaque != NULL ) {
184
+ zend_string_release (msg_opaque );
185
+ }
187
186
}
188
187
189
188
static int kafka_conf_stats_cb (rd_kafka_t * rk , char * json , size_t json_len , void * opaque )
@@ -267,7 +266,7 @@ static void kafka_conf_consume_cb(rd_kafka_message_t *msg, void *opaque)
267
266
ZVAL_NULL (& args [0 ]);
268
267
ZVAL_NULL (& args [1 ]);
269
268
270
- kafka_message_new (& args [0 ], msg );
269
+ kafka_message_new (& args [0 ], msg , NULL );
271
270
ZVAL_ZVAL (& args [1 ], & cbs -> zrk , 1 , 0 );
272
271
273
272
0 commit comments