~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to libdrizzle-2.0/libdrizzle/field.cc

  • Committer: Mark Atwood
  • Date: 2011-10-08 04:50:51 UTC
  • mfrom: (2430.1.1 rf)
  • Revision ID: me@mark.atwood.name-20111008045051-6ha1qiy7k2a9c3jv
Tags: 2011.10.27
mergeĀ lp:~olafvdspek/drizzle/refactor2

Show diffs side-by-side

added added

removed removed

Lines of Context:
39
39
 * @brief Field definitions
40
40
 */
41
41
 
42
 
#include <libdrizzle-2.0/common.h>
 
42
#include "common.h"
43
43
 
44
44
/*
45
45
 * Client definitions
77
77
drizzle_field_t drizzle_field_buffer(drizzle_result_st *result, size_t *total,
78
78
                                     drizzle_return_t *ret_ptr)
79
79
{
 
80
  drizzle_field_t field;
80
81
  size_t offset= 0;
81
82
  size_t size= 0;
82
83
 
83
 
  drizzle_return_t unused;
84
 
  if (ret_ptr == NULL)
85
 
  {
86
 
    ret_ptr= &unused;
87
 
  }
88
 
 
89
 
  drizzle_field_t field= drizzle_field_read(result, &offset, &size, total, ret_ptr);
 
84
  field= drizzle_field_read(result, &offset, &size, total, ret_ptr);
90
85
  if (*ret_ptr != DRIZZLE_RETURN_OK)
91
 
  {
92
86
    return NULL;
93
 
  }
94
87
 
95
88
  if (field == NULL)
96
89
  {
100
93
 
101
94
  if (result->field_buffer == NULL)
102
95
  {
103
 
    result->field_buffer= new (std::nothrow) drizzle_field_t_type[(*total) + 1];
104
 
 
105
 
    if (result->field_buffer == NULL)
106
 
    {
107
 
      *ret_ptr= DRIZZLE_RETURN_MEMORY;
108
 
      *total= 0;
109
 
      return NULL;
110
 
    }
 
96
    result->field_buffer= new drizzle_field_t_type[(*total) + 1];
111
97
  }
112
98
 
113
99
  memcpy(result->field_buffer + offset, field, size);
116
102
  {
117
103
    field= drizzle_field_read(result, &offset, &size, total, ret_ptr);
118
104
    if (*ret_ptr != DRIZZLE_RETURN_OK)
119
 
    {
120
105
      return NULL;
121
 
    }
122
106
 
123
107
    memcpy(result->field_buffer + offset, field, size);
124
108
  }