/*
 * Copyright 2012 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#include "GrBufferObj.h"

void GrBufferObj::allocate(GrGLsizeiptr size, const GrGLchar *dataPtr) {
    GrAlwaysAssert(size >= 0);

    // delete pre-existing data
    delete[] fDataPtr;

    fSize = size;
    fDataPtr = new GrGLchar[size];
    if (dataPtr) {
        memcpy(fDataPtr, dataPtr, fSize);
    }
    // TODO: w/ no dataPtr the data is unitialized - this could be tracked
}

void GrBufferObj::deleteAction() {

    // buffers are automatically unmapped when deleted
    this->resetMapped();

    this->INHERITED::deleteAction();
}