@@ -130,19 +130,32 @@ func (rb *RewriterBuilder) AddDocumentContentHandlers(
130130 textChunkHandler TextChunkHandler ,
131131 docEndHandler DocEndHandler ,
132132) {
133+ var cCallbackDoctypePointer , cCallbackCommentPointer , cCallbackTextChunkPointer , cCallbackDocEndPointer * [0 ]byte
134+ if doctypeHandler != nil {
135+ cCallbackDoctypePointer = (* [0 ]byte )(C .callback_doctype )
136+ }
137+ if commentHandler != nil {
138+ cCallbackCommentPointer = (* [0 ]byte )(C .callback_comment )
139+ }
140+ if textChunkHandler != nil {
141+ cCallbackTextChunkPointer = (* [0 ]byte )(C .callback_text_chunk )
142+ }
143+ if docEndHandler != nil {
144+ cCallbackDocEndPointer = (* [0 ]byte )(C .callback_doc_end )
145+ }
133146 doctypeHandlerPointer := pointer .Save (doctypeHandler )
134147 commentHandlerPointer := pointer .Save (commentHandler )
135148 textChunkHandlerPointer := pointer .Save (textChunkHandler )
136149 docEndHandlerPointer := pointer .Save (docEndHandler )
137150 C .lol_html_rewriter_builder_add_document_content_handlers (
138151 (* C .lol_html_rewriter_builder_t )(rb ),
139- ( * [ 0 ] byte )( C . callback_doctype ) ,
152+ cCallbackDoctypePointer ,
140153 doctypeHandlerPointer ,
141- ( * [ 0 ] byte )( C . callback_comment ) ,
154+ cCallbackCommentPointer ,
142155 commentHandlerPointer ,
143- ( * [ 0 ] byte )( C . callback_text_chunk ) ,
156+ cCallbackTextChunkPointer ,
144157 textChunkHandlerPointer ,
145- ( * [ 0 ] byte )( C . callback_doc_end ) ,
158+ cCallbackDocEndPointer ,
146159 docEndHandlerPointer ,
147160 )
148161}
@@ -153,17 +166,27 @@ func (rb *RewriterBuilder) AddElementContentHandlers(
153166 commentHandler CommentHandler ,
154167 textChunkHandler TextChunkHandler ,
155168) {
156- commentHandlerPointer := pointer .Save (commentHandler )
169+ var cCallbackElementPointer , cCallbackCommentPointer , cCallbackTextChunkPointer * [0 ]byte
170+ if elementHandler != nil {
171+ cCallbackElementPointer = (* [0 ]byte )(C .callback_element )
172+ }
173+ if commentHandler != nil {
174+ cCallbackCommentPointer = (* [0 ]byte )(C .callback_comment )
175+ }
176+ if textChunkHandler != nil {
177+ cCallbackTextChunkPointer = (* [0 ]byte )(C .callback_text_chunk )
178+ }
157179 elementHandlerPointer := pointer .Save (elementHandler )
180+ commentHandlerPointer := pointer .Save (commentHandler )
158181 textChunkHandlerPointer := pointer .Save (textChunkHandler )
159182 C .lol_html_rewriter_builder_add_element_content_handlers (
160183 (* C .lol_html_rewriter_builder_t )(rb ),
161184 (* C .lol_html_selector_t )(selector ),
162- ( * [ 0 ] byte )( C . callback_element ) ,
185+ cCallbackElementPointer ,
163186 elementHandlerPointer ,
164- ( * [ 0 ] byte )( C . callback_comment ) ,
187+ cCallbackCommentPointer ,
165188 commentHandlerPointer ,
166- ( * [ 0 ] byte )( C . callback_text_chunk ) ,
189+ cCallbackTextChunkPointer ,
167190 textChunkHandlerPointer ,
168191 )
169192}
0 commit comments