All pastes #249754 Raw Edit

Something

public text v1 · immutable
#249754 ·published 2006-11-16 03:02 UTC
rendered paste body
int func()
{
  Pointer *a = NULL, *b = NULL, *c = NULL;

  a = new_a();
  if (!a) goto cleanup;

  b = new_b();
  if (!b) goto cleanup;

  c = new_c();
  if (!c) goto cleanup;

  /* ... */
  if (some_other_error) goto cleanup;

  return 1;

  cleanup:
    if (a) free(a);
    if (b) free(b);
    if (c) free(c);
    return 0;
}



int func2()
{
  Pointer *a = NULL, *b = NULL, *c = NULL;

  a = new_a();
  if (!a) goto cleanup;

  b = new_b();
  if (!b) goto cleanup_a;

  c = new_c();
  if (!c) goto cleanup_b;

  /* ... */
  if (some_other_error) goto cleanup_c;

  return 1;

  cleanup_c: free(c);
  cleanup_b: free(b);
  cleanup_a: free(a);
  cleanup:
  return 0;
}