| Index: c/bb.c
|
| diff --git a/c/bb.c b/c/bb.c
|
| index bacb91f87e7e452faed0641a9d07a67c33ab5b94..ae82ccdd2bb045baa4d07160bf51aaa5fcd39454 100644
|
| --- a/c/bb.c
|
| +++ b/c/bb.c
|
| @@ -1,3 +1,18 @@
|
| +/*
|
| + * Copyright 2016 The Netty Project
|
| + *
|
| + * The Netty Project licenses this file to you under the Apache License,
|
| + * version 2.0 (the "License"); you may not use this file except in compliance
|
| + * with the License. You may obtain a copy of the License at:
|
| + *
|
| + * http://www.apache.org/licenses/LICENSE-2.0
|
| + *
|
| + * Unless required by applicable law or agreed to in writing, software
|
| + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
| + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
| + * License for the specific language governing permissions and limitations
|
| + * under the License.
|
| + */
|
| /* Licensed to the Apache Software Foundation (ASF) under one or more
|
| * contributor license agreements. See the NOTICE file distributed with
|
| * this work for additional information regarding copyright ownership.
|
| @@ -14,114 +29,8 @@
|
| * limitations under the License.
|
| */
|
|
|
| -/*
|
| - *
|
| - * @author Mladen Turk
|
| - * @version $Id: bb.c 1442587 2013-02-05 13:49:48Z rjung $
|
| - */
|
| -
|
| #include "tcn.h"
|
|
|
| -/**
|
| - * DirectByteBuffer utilities
|
| - */
|
| -
|
| -TCN_IMPLEMENT_CALL(jobject, Buffer, malloc)(TCN_STDARGS, jint size)
|
| -{
|
| - void *mem;
|
| - size_t sz = (size_t)APR_ALIGN_DEFAULT(size);
|
| -
|
| - UNREFERENCED(o);
|
| -
|
| - if ((mem = malloc(sz)) != NULL) {
|
| - jobject rv = (*e)->NewDirectByteBuffer(e, mem, (jlong)sz);
|
| - if (rv == NULL)
|
| - free(mem);
|
| - return rv;
|
| - }
|
| - else {
|
| - return NULL;
|
| - }
|
| -}
|
| -
|
| -TCN_IMPLEMENT_CALL(jobject, Buffer, calloc)(TCN_STDARGS, jint num, jint size)
|
| -{
|
| - size_t sz = (size_t)APR_ALIGN_DEFAULT((size * num));
|
| - void *mem;
|
| -
|
| - UNREFERENCED(o);
|
| -
|
| - if ((mem = calloc(1, sz)) != NULL) {
|
| - jobject rv = (*e)->NewDirectByteBuffer(e, mem, (jlong)sz);
|
| - if (rv == NULL)
|
| - free(mem);
|
| - return rv;
|
| - }
|
| - else {
|
| - return NULL;
|
| - }
|
| -}
|
| -
|
| -TCN_IMPLEMENT_CALL(jobject, Buffer, palloc)(TCN_STDARGS, jlong pool,
|
| - jint size)
|
| -{
|
| - apr_pool_t *p = J2P(pool, apr_pool_t *);
|
| - apr_size_t sz = (apr_size_t)APR_ALIGN_DEFAULT(size);
|
| - void *mem;
|
| -
|
| - UNREFERENCED(o);
|
| - TCN_ASSERT(pool != 0);
|
| -
|
| - if ((mem = apr_palloc(p, sz)) != NULL)
|
| - return (*e)->NewDirectByteBuffer(e, mem, (jlong)sz);
|
| - else
|
| - return NULL;
|
| -}
|
| -
|
| -TCN_IMPLEMENT_CALL(jobject, Buffer, pcalloc)(TCN_STDARGS, jlong pool,
|
| - jint size)
|
| -{
|
| - apr_pool_t *p = J2P(pool, apr_pool_t *);
|
| - apr_size_t sz = (apr_size_t)APR_ALIGN_DEFAULT(size);
|
| - void *mem;
|
| -
|
| - UNREFERENCED(o);
|
| - TCN_ASSERT(pool != 0);
|
| -
|
| - if ((mem = apr_pcalloc(p, sz)) != NULL)
|
| - return (*e)->NewDirectByteBuffer(e, mem, (jlong)sz);
|
| - else
|
| - return NULL;
|
| -}
|
| -
|
| -TCN_IMPLEMENT_CALL(jobject, Buffer, create)(TCN_STDARGS, jlong addr,
|
| - jint size)
|
| -{
|
| - void *mem = J2P(addr, void *);
|
| -
|
| - UNREFERENCED(o);
|
| - TCN_ASSERT(mem != 0);
|
| - TCN_ASSERT(size != 0);
|
| -
|
| - if (mem && size)
|
| - return (*e)->NewDirectByteBuffer(e, mem, (jlong)size);
|
| - else
|
| - return NULL;
|
| -}
|
| -
|
| -TCN_IMPLEMENT_CALL(void, Buffer, free)(TCN_STDARGS, jobject bb)
|
| -{
|
| - void *mem;
|
| -
|
| - UNREFERENCED(o);
|
| - if ((mem = (*e)->GetDirectBufferAddress(e, bb)) != NULL) {
|
| - /* This can cause core dump if address was
|
| - * allocated from the APR pool.
|
| - */
|
| - free(mem);
|
| - }
|
| -}
|
| -
|
| TCN_IMPLEMENT_CALL(jlong, Buffer, address)(TCN_STDARGS, jobject bb)
|
| {
|
| UNREFERENCED(o);
|
|
|