zval zargs[4];
ZVAL_LONG(&zargs[0], reason);
- ZVAL_STRINGL(&zargs[1], args->source, args->sourceLimit - args->source);
- ZVAL_STRINGL(&zargs[2], codeUnits, length);
+ if (args->source) {
+ ZVAL_STRINGL(&zargs[1], args->source, args->sourceLimit - args->source);
+ } else {
+ ZVAL_EMPTY_STRING(&zargs[1]);
+ }
+ if (codeUnits) {
+ ZVAL_STRINGL(&zargs[2], codeUnits, length);
+ } else {
+ ZVAL_EMPTY_STRING(&zargs[2]);
+ }
ZVAL_LONG(&zargs[3], *pErrorCode);
objval->to_cb.param_count = 4;
int len = ns_len + type_len + 1;
nscat = emalloc(len + 1);
- memcpy(nscat, ns, ns_len);
+ if (ns) {
+ memcpy(nscat, ns, ns_len);
+ }
nscat[ns_len] = ':';
memcpy(nscat+ns_len+1, type, type_len);
nscat[len] = '\0';
pnstr = spl_gen_private_prop_name(spl_ce_SplFileInfo, "pathName", sizeof("pathName")-1);
path = spl_filesystem_object_get_pathname(intern, &path_len);
- ZVAL_STRINGL(&tmp, path, path_len);
+ ZVAL_STRINGL(&tmp, path ? path : "", path_len);
zend_symtable_update(rv, pnstr, &tmp);
zend_string_release_ex(pnstr, 0);
}
path = spl_filesystem_object_get_path(intern, &path_len);
- RETURN_STRINGL(path, path_len);
+ if (path) {
+ RETURN_STRINGL(path, path_len);
+ } else {
+ RETURN_EMPTY_STRING();
+ }
}
/* }}} */
obj = Z_TIDY_P(in);
tidyBufInit(&output);
tidySaveBuffer (obj->ptdoc->doc, &output);
- ZVAL_STRINGL(out, (char *) output.bp, output.size ? output.size-1 : 0);
+ if (output.size) {
+ ZVAL_STRINGL(out, (char *) output.bp, output.size-1);
+ } else {
+ ZVAL_EMPTY_STRING(out);
+ }
tidyBufFree(&output);
break;