void pinArrays() {
		// if no real array arguments, use our dummyArray arg so we can pin something
		if (arrayBufs.size() == 0) {
			okraContextHolder->dummyArrayBuf->pin(jenv);
		}
		else {
			for (int i=0; i<arrayBufs.size(); i++) {
				ArrayBuffer *arrayBuffer = arrayBufs.at(i);
				// FIXME, should be logic here to check for movement?
				if (!arrayBuffer->isPinned) {
					arrayBuffer->pin(jenv);
					// change the appropriate pointer argument in the arg stack
					realOkraKernel->setPointerArg(arrayBuffer->arg_idx, arrayBuffer->addr);
					// note: must also call registerArrayMemory (until we can make this call go away)
					okraContextHolder->realContext->registerArrayMemory(arrayBuffer->addr, arrayBuffer->length * arrayBuffer->elementSize + 32);
				}
			}
		}
	}