Skip to main content

xmlReaderNewIO

Function xmlReaderNewIO 

Source
#[unsafe(no_mangle)]
pub unsafe extern "C" fn xmlReaderNewIO( reader: *mut XmlTextReader, ioread: Option<xmlInputReadCallback>, ioclose: Option<xmlInputCloseCallback>, ioctx: *mut c_void, URL: *const c_char, encoding: *const c_char, options: c_int, ) -> c_int
Expand description

int xmlReaderNewIO(xmlTextReaderPtr reader, xmlInputReadCallback ioread, xmlInputCloseCallback ioclose, void *ioctx, const char *URL, const char *encoding, int options).

§SAFETY

  • reader, ioctx must be valid pointers (or NULL where the upstream C contract allows), obtained from the matching constructor/owner and not yet freed; the callee may take or keep ownership exactly as the C API specifies.

  • URL, encoding must point to valid NUL-terminated strings (or NULL where the C contract allows) for the lifetime of the call.

  • ioread, ioclose must be a valid callback (or None); the callback is invoked with the documented context pointer and must itself uphold the same pointer invariants.

The caller must not race this call with concurrent mutation of the same objects from other threads (per-object state is not internally synchronized). Violating any of the above is undefined behavior.

Exercised by the C-API differential courts (courts/suites/data-abi/*-family-probe.c) and the CLI differential courts; those pass byte-for-byte against the upstream oracle.