1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-23 09:57:40 +03:00

s4-pild-python: Fix assignments - even though we reference the mem_ctx

of an object we still use the actual ptr.
This commit is contained in:
Jelmer Vernooij 2010-09-20 21:02:16 -07:00
parent f161fa3ac8
commit c4c6f8f175

View File

@ -832,7 +832,7 @@ sub assign($$$)
if ($dest =~ /^\&/ and $src eq "NULL") {
$self->pidl("memset($dest, 0, sizeof(" . get_value_of($dest) . "));");
} elsif ($dest =~ /^\&/) {
$self->pidl("memcpy($dest, $src, sizeof(" . get_value_of($dest) . "));");
$self->pidl("memmove($dest, $src, sizeof(" . get_value_of($dest) . "));");
} else {
$self->pidl("$dest = $src;");
}
@ -894,7 +894,13 @@ sub ConvertObjectFromPythonData($$$$$$;$)
return;
}
$self->pidl("PY_CHECK_TYPE($ctype_name, $cvar, $fail);");
$self->assign($target, "talloc_reference($mem_ctx, (".mapTypeName($ctype)." *)py_talloc_get_mem_ctx($cvar))");
$self->pidl("if (talloc_reference($mem_ctx, py_talloc_get_mem_ctx($cvar)) == NULL) {");
$self->indent;
$self->pidl("PyErr_NoMemory();");
$self->pidl("$fail");
$self->deindent;
$self->pidl("}");
$self->assign($target, "(".mapTypeName($ctype)." *)py_talloc_get_ptr($cvar)");
return;
}